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'的位置是随机的,所以长度不是确定的。

2
0

重学C++ ,重构你的C++知识体系

一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维

3884 学习 · 1103 问题

查看课程