新人自学问题比较幼稚
char arrayD[3]{ 'a','b','\0' };
数组第三个元素这个\0是何用意,数组结尾不是有一个隐藏的结束符么?
问题出处:《C++ primer plus》 书中
先说明一点,数组结尾从来没有一个隐藏的结束符。字符串结尾才有一个隐藏的结束符,比如char* s = "123";
再来说\0
的用意:
1.如果只用数组下标方式来访问arrayD
的话,比如arrayD[0]
,那\0
没什么特别的意思,就是一个值
2.如果arrayD
退化为指针使用,那么\0
就是字符串的结束符,比如printf(”%s\n“, arrayD);
,此时没有'\0'的话,输出的就可能就不是ab
了