首页 新闻 会员 周边

c++数组初始化

0
[已关闭问题] 关闭于 2019-03-22 16:16

新人自学问题比较幼稚

char arrayD[3]{ 'a','b','\0' };

数组第三个元素这个\0是何用意,数组结尾不是有一个隐藏的结束符么?

问题出处:《C++ primer plus》 书中

C++
MSky的主页 MSky | 菜鸟二级 | 园豆:436
提问于:2019-03-22 15:59
< >
分享
所有回答(1)
1

先说明一点,数组结尾从来没有一个隐藏的结束符。字符串结尾才有一个隐藏的结束符,比如char* s = "123";

再来说\0的用意:
1.如果只用数组下标方式来访问arrayD的话,比如arrayD[0],那\0没什么特别的意思,就是一个值
2.如果arrayD退化为指针使用,那么\0就是字符串的结束符,比如printf(”%s\n“, arrayD);,此时没有'\0'的话,输出的就可能就不是ab

一罪 | 园豆:250 (菜鸟二级) | 2019-03-24 19:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册