C++中不同类型数组和字符串输出的问题
char* str="hello";
cout<<str<<endl;
char str2[]="Hello";
cout<<str2<<endl;
int nNum[]={1,2,3,4};
cout<<nNum<<endl;
char str4[]={'a','b','c','d','e',''};
cout<<str4<<endl;
对于这几行程序,第一个和第二个,第四个都是输出了全部的字符,而第三个是输出的一个地址,为什么不全部输出数字?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
数组名默认首地址
感谢三位,我弄懂了。
Debug里调出内存窗口,把它们的地址放到内存窗口里,看看在内存里是如何存储的就什么都清楚了。
一楼的回答已经很清楚了,在 LZ 的另一个类似的帖子里,二楼也解释的比较清楚了。
类似的和数据存储格式有关的问题,调试,看内存里数据如何存储,就知道程序为什么是这样的行为了
你还是没注意我上次说的.长度,长度.
那三个输出了全部的字符是因为有''结尾,就是可以知道什么时候停止.
第三个不能输出所有数字,是因为数组做为函数参数时,是传指针的,而指针没办法算出它所指内容的长度.所以没办法按你想的那样实现.