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

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 19:41:29

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,不为零的时候其实是一个随机的结果,主要看后面的内存结构.