44问答网
所有问题
c++里cin不能输入指针类型的数据吗? 比如 int *p; cin>>p;怎么出错的?
如题所述
举报该问题
推荐答案 2014-10-10
不可以,cin>>p中p表示的是地址不是数据,应该p = new int;先给p分配空间,然后输入 cin>>*p;
追问
哦
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://44.wendadaohang.com/zd/GD6YVVVZZG6RGG3DZ3.html
其他回答
第1个回答 2020-01-26
printf("%d",p)
这个打印的是p,
p是一个指针,它指向地址100,这个打印的就是100了
printf("%d",*p);
打印*p.这个就是地址100里的内容了。因为地址100为系统所用,所以就出错了!
第2个回答 2014-10-10
为了保证程序的安全性,指针不允许随意赋值的,如果你随便输入一个地址,然后就能让指针指向它,接着就能改变这段内存的数值,那不乱套了……
第3个回答 2014-10-10
应该是输入数据后存储于输入缓冲区中,然后回车把缓冲区的数据复制给接收的变量,这里为一个指针,指针无法直接指向一个常量。
第4个回答 2014-10-10
cin接受void*&类型,也就是指针的引用int*可以隐式转换为void*,也能转换为const void*&,所以只要cin >> (void*)p或者cin >> (void*&)p即刻
追答
真当cast可以随便用么。
5年前我也是这么想的
想什么
1
2
下一页
相似回答
为什么
cin不能输入指针
答:
int
a
;cin
>> a;//而不是cin >> &a;所以cin >> *(p++)才对
c++
的
cin输入
和
类型
通用的问题
答:
你好:对于赋值语句“=”及输入流语句“
cin
>>”的区别你可能没有弄清楚。赋值语句“=”中间包含了强制类型转换,比如double型赋值给
int
整型,就会发生数据截断。 而输入流“cin>>”没有此功能,它只要求
输入的
内容与变量的类型相符即可,若不相符,则此语句为非法(但是并非所有的编译器都报错)。
关于
C++输入cin的
问题,下面的程序,如果
输入的
不合法,那就将陷入死循环...
答:
当你在控制台输完数据敲回车后,
输入的数据
以及回车换行符被同时送到输入缓冲区,例如你输入的数据为a,然后回车,此时输入缓冲区中就有两个字符,一个是‘a’,一个是回车换行符‘/n’,接着程序读取,由于类型不匹配,读取失败,并没有读走输入缓冲区
中的数据
,也就是说,此时输入缓冲区中还是‘...
c++中cin类型
不匹配的问题
答:
当遇到'.'的时候
cin
尝试输入整型数据,但是字符无法识别 于是
出错
cin返回值为0 退出循环
大家正在搜
指针的数据类型是什么
数组指针和指针数组的区别
指针的指针是什么
指针变量的类型是什么
指针数据类型
指针的类型
指针类型是什么意思
数据指针dptr有几位
指针是数据对象的地址
相关问题
为什么cin不能输入指针
char *p; cin>>*p; cout&l...
c++ 的cin输入和类型通用的问题
c++里如何cin函数?
请问c++里面,int *p=new int(2)是为p指针...
c++里如何用数组元素获取指针内容来实现指针对数组的赋值
c++,输入一个未知大小的数组怎么做??? 要求有回答范例。...
c++ cin返回值是多少