C++中不同类型数组和字符串输出的问题

发布于 2021-11-25 00:55:59 字数 378 浏览 894 评论 4

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

混吃等死 2021-11-30 00:13:10

数组名默认首地址

少女净妖师 2021-11-29 23:22:29

感谢三位,我弄懂了。

兮颜 2021-11-28 15:33:01

Debug里调出内存窗口,把它们的地址放到内存窗口里,看看在内存里是如何存储的就什么都清楚了。

一楼的回答已经很清楚了,在 LZ 的另一个类似的帖子里,二楼也解释的比较清楚了。

类似的和数据存储格式有关的问题,调试,看内存里数据如何存储,就知道程序为什么是这样的行为了

一笔一画续写前缘 2021-11-28 01:06:46

你还是没注意我上次说的.长度,长度.

那三个输出了全部的字符是因为有''结尾,就是可以知道什么时候停止.

第三个不能输出所有数字,是因为数组做为函数参数时,是传指针的,而指针没办法算出它所指内容的长度.所以没办法按你想的那样实现.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文