在
网上看到的定义:strlen的计算必须依赖字符序列中的’\0’字符,strlen
就是通过判断是否遇到’\0’来判断字符序列是否结束的。
它的计算原理类似于下面的两条语句
while(*p!=’\0’)
length++
问题:
char str[10];
//printf("&str = %x\n", str);
printf("strlen(str) = %d, sizeof(str) = %d\n", strlen(str), sizeof(str)); //此处strlen(str)=13
printf("str[12] = %d\n", str[12]); //此处结果为一个非’\0’的值 我的环境中为35
既然strlen 是通过判断是否遇到’\0’来判断,上面str[12]中并不为’\0’,为什么strlen(str)为13?
望高人解惑!谢谢!