void main() { char a[10]={2,12,1,4,5,7,8,9,0,11} printf("%d",strlen(a)); }这个结果为8,将里面元素0改成非0的,结果就为14,求指教,为什么

来源:学生作业帮助网 编辑:作业帮 时间:2024/10/03 05:12:24
void main() { char a[10]={2,12,1,4,5,7,8,9,0,11} printf(
xՐJA_eCD[ -t#VYK(K52bQWeff+_"9::)"xr҆oǗ@X*  NQ#rlY{ Swdqgt_k5n&4u7xvcz5SMHz eX&Fzq7_ cd:vrda@ j^ty;ymb$+<ۚCe/\?0X=a`Y M(LحE ai)Y?Jʢ$w٭^Z X`N 83 4TN." 

void main() { char a[10]={2,12,1,4,5,7,8,9,0,11} printf("%d",strlen(a)); }这个结果为8,将里面元素0改成非0的,结果就为14,求指教,为什么
void main() { char a[10]={2,12,1,4,5,7,8,9,0,11} printf("%d",strlen(a)); }
这个结果为8,将里面元素0改成非0的,结果就为14,求指教,为什么

void main() { char a[10]={2,12,1,4,5,7,8,9,0,11} printf("%d",strlen(a)); }这个结果为8,将里面元素0改成非0的,结果就为14,求指教,为什么
数组越位了,你少了一个结束符的控件,strlen是以结束符(0)为判断依据的,所以为0的时候就是8,不为零的时候其实是一个随机的结果,主要看后面的内存结构.