Advertisement

这道题(数据存储方式)

阅读量:

存在如下一段代码:

复制代码
    int main(){
    	char a[1000];
    	int i;
    	for(i = 0; i < 1000; i++){
    
    		a[i] = -1 - i;
    
    	}
    	printf("%d\n", strlen(a));
    	
    	return 0;
    }
    
    
      
      
      
      
      
      
      
      
      
      
      
      
    

问:打印的结果是多少
分析过程如下:

  1. 首先需要了解在C语言中,字符串是通过字符数组的方式进行表示的
  2. 字符串属于一种特殊的字符数组形式,其特点是使用‘\0’作为结束标志
  3. char a[1000]这个数组在初始化时并不构成字符串,因此无法直接使用strlen函数对其进行处理
  4. 循环的作用是对该数组的每个元素依次赋值,当某一位置被赋予‘\0’时,意味着该数组已完成赋值,并具备可操作性
  5. 表达式a[i] = -1 - i;表面上看是为每个元素依次赋予-1、-2、-3、-4等数值,但其中存在一个隐藏的问题:-1 - i的结果为int类型,在将其赋

全部评论 (0)

还没有任何评论哟~