char数组长度问题
来源:4-4 C语言数组退化问题下
慕数据049309
2022-11-04
老师,我定义了一个char类型数组,长度为5,循环执行了17次,这是为什么呢?
代码:
char crr[] = { 'a','b','c','d','e' }; //crr长度为5
int len = 0;
while (*arr!='\0') {
cout << *arr << ""; //输出:abcde烫烫烫烫烫
arr++;
len++;
}
cout<<len<<"\n"; //len=17
写回答
1回答
-
quickzhao
2022-11-05
你要清楚C语言数组定义的本质,这里数组定义的方式有问题,使用"abcde"或{'a','b','c','d','e','\0'} 这样的定义才能保证以'\0'作为结尾。你这样定义'\0'的位置是随机的,所以长度不是确定的。
20
相似问题