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

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

std::cout

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

for(i=1;i

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

看这句cout

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

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

cout

c的末尾应该加上字符串的终结符'\0',你的代码里没有做这个操作

按着C/C++的语法: a是个字符串指针,指向"STR"的首地址,即S的地址; 而&a是a这个指针的地址! 所以,4个输出中1,3是同一个值;2,4是同一个值,这两个值是不同的!

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