cout<<mm 和cin>>nn;它是可以自己识别mm和nn是不是指针变量吗?
答:cin后面只能跟char*的指针,别的类型指针(eg:int*)报错;
cout后面跟char*的指针,打印的是里面的内容,cout后面跟int*的指针,打印的是地址;
cin输入时,如果给char* 会自动结束符吗,会的;
char *p2;前提是p2指向有空间的地址
cin >> *p2; //只是输入一个字符
cin >> p2; //输入p2所指的空间内容 全部修改
在C语言里,输出一个字符串的指针很方便,直接printf("%p/n",p);就输出了。
而C++里cout太自作聪明了,为了省去我们循环输出字符的麻烦,cout<<p<<endl;被翻译为输出p指向的字符串值。
这个时候要输出p的指针值就只能先将其转为void *再输出。因为void型,cout没法输出,只能乖乖输出指针。
此外cout<<&p<<endl;是不可取的,它其实等效于printf("%p/n",&p);
那个输出流运算符被重载过,这样更加方便输出字符串,因为字符串比较特殊,用/0结尾,
所以这样的重载可行,输出到内存为/0的地方就可以,但是普通数组没有这样的特性所以不重载,直接输出地址
本文详细解析了C++中cin与cout的操作特点,包括不同类型指针变量的输入输出处理方式,以及如何正确使用这些操作符进行数据读写。特别强调了cin与char*类型的交互方式和cout在输出不同指针类型时的行为差异。
4761

被折叠的 条评论
为什么被折叠?



