这道题(数据存储方式)
发布时间
阅读量:
阅读量
存在如下一段代码:
int main(){
char a[1000];
int i;
for(i = 0; i < 1000; i++){
a[i] = -1 - i;
}
printf("%d\n", strlen(a));
return 0;
}
问:打印的结果是多少
分析过程如下:
- 首先需要了解在C语言中,字符串是通过字符数组的方式进行表示的
- 字符串属于一种特殊的字符数组形式,其特点是使用‘\0’作为结束标志
- char a[1000]这个数组在初始化时并不构成字符串,因此无法直接使用strlen函数对其进行处理
- 循环的作用是对该数组的每个元素依次赋值,当某一位置被赋予‘\0’时,意味着该数组已完成赋值,并具备可操作性
- 表达式a[i] = -1 - i;表面上看是为每个元素依次赋予-1、-2、-3、-4等数值,但其中存在一个隐藏的问题:-1 - i的结果为int类型,在将其赋
全部评论 (0)
还没有任何评论哟~
