A. /0 真的很神奇,它悄悄地存在于字符串的结束位置:
写一串代码:
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[] = "hello";
char arr2[] = { 'h','e','l','l','o' };
printf("%d\n", strlen(arr1));
printf("%d\n", strlen(arr2));
return 0;
}
按F10进行调试,然后来看看arr1和arr2的区别:
运行代码,监视arr1,得到
发现arr1中有6个字符,第六个字符居然是'\0'!
再运行代码,监视arr2,得到
发现arr2中只有5个字符!
这就是arr1和arr2的字符上的区别。
B.'\0'也会影响字符串的长度:
运行完整个代码,看看输出:
这里用了一个长度函数strlen(),
发现arr1的长度为5,无非就是五个字母的长度,说明'\0'不占用空间!
而arr2的长度是21,其实这是一个随机生成的数字。因为arr2中不含停止标志,代码运行时,因为没有停止标志,所以寻找到'0'时不会停止,会继续往下寻找。