c++数组输出的问题。

直接输出数组名不是应该输出数组在内存中的地址吗?为什么int数组和char数组输出的不一样?请忽略输出第二行后面的无关字符,可能是我系统字符集的问题。... 直接输出数组名不是应该输出数组在内存中的地址吗?为什么int数组和char数组输出的不一样?请忽略输出第二行后面的无关字符,可能是我系统字符集的问题。 展开
 我来答
CHENGWENGJI
2016-10-08 · TA获得超过412个赞
知道小有建树答主
回答量:667
采纳率:66%
帮助的人:296万
展开全部

首先,cout对各个'常用类型'进行了重载,如果是int类型,就输出一个数字,如果是int*类型,就输出地址,如果是char类型,就输出一个字符,但,如果是char*类型,会输出一连串字符,就是字符串了,

cout就是为了将各个数据类型的输出形式进行统一


其次,并不是你系统字符集有问题,而是你定义的方式,注意到你的b和c定义是不同的,定义c时,编译器自动在最后添加了'\0'这个结束符,也就是说c的数组长度是6,你输出b时,cout是不知道你的字符串长度的,找不到结束符,所以后面有乱码

所以你这样定义就对了

char b[6]={'a','b','c','d','e','\0'};
追问
行,我知道了。因为我学的时候记得,数组作为形参传递的是内存的存储位置,我就以为所有通过打印数组名,就是打印数组的存储位置。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式