zrcd.net
当前位置:首页 >> C++问题,我想输出字符的地址,但是为什么输出的是乱... >>

C++问题,我想输出字符的地址,但是为什么输出的是乱...

std::cout

没有给da末尾赋值一个结束符(0x0) 看图,这是da的内存,10字节的空间,但后面是0xcc,而不是0x0 cout打印出来的字符串是遇0x0才结束,所以这才出现了乱码

看这句cout

数字后标相当于索引。比如数组是引用类型变量,数组名就是地址名,后加数字索引即可访问数组中任一元素。

楼主注意字符数组的输入,cin>>字符数组的地址。改过来就没问题了void input(course *cour,int i){ int j; for(j=0;j

&ss[0] 是 char* 类型。 cout把char*当做 c字符串处理一直输出直到\0。 对它解引用 * &ss[0] 就得到单个字符char 类型。

为了避免LZ混乱,我帮你重写一次: char *z; z="abcd"; 这段代码,实际上是将字符串abcd中a的地址赋给了指针z。 因为在执行z="abcd"的时候,程序首先在内存分配一个可供字符串abcd存放的内存空间,再将指针z设置为指向这段内存空间的第一个地址...

当char *a="xxxxxxxx"; 这个就是你数组中的一个元素吧?当使用cout

string 是C++标准里的一个类,不是字符串,printf直接打印string类的话会将整个类的内存结构当做字符串来打樱要打印string字符串内容,请将printf("%s\n" ,Result);改为printf("%s\n" ,Result.c_str());

第一句输出语句。因为cptr是char*,所以默认输出cout

网站首页 | 网站地图
All rights reserved Powered by www.zrcd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com