c++数组输出的问题。
直接输出数组名不是应该输出数组在内存中的地址吗?为什么int数组和char数组输出的不一样?请忽略输出第二行后面的无关字符,可能是我系统字符集的问题。...
直接输出数组名不是应该输出数组在内存中的地址吗?为什么int数组和char数组输出的不一样?请忽略输出第二行后面的无关字符,可能是我系统字符集的问题。
展开
展开全部
首先,cout对各个'常用类型'进行了重载,如果是int类型,就输出一个数字,如果是int*类型,就输出地址,如果是char类型,就输出一个字符,但,如果是char*类型,会输出一连串字符,就是字符串了,
cout就是为了将各个数据类型的输出形式进行统一
其次,并不是你系统字符集有问题,而是你定义的方式,注意到你的b和c定义是不同的,定义c时,编译器自动在最后添加了'\0'这个结束符,也就是说c的数组长度是6,你输出b时,cout是不知道你的字符串长度的,找不到结束符,所以后面有乱码
所以你这样定义就对了
char b[6]={'a','b','c','d','e','\0'};
追问
行,我知道了。因为我学的时候记得,数组作为形参传递的是内存的存储位置,我就以为所有通过打印数组名,就是打印数组的存储位置。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询