数组小结-C语言

    数组是标准C里面最重要的集合数据类型,数组可以看做是多个相同类型变量组成的集合。数组在C89中是定长的,在C99中可以是变长的,变长的意思是可以通过变量来定义数组的长度。

 
一、和Java差不多
 
#include <stdio.h> 

int main(){ 
         int a[3],avg,sum; 
         int i=0; 
        printf( "请输入3个整数:\n" ); 
         for(sum=0;i<3;i++){ 
            scanf( "%d",&a[i]); 
            sum +=a[i]; 
        } 
        avg = sum/i; 
        printf( "求和=%d,求均值=%d",sum,avg); 
        getch(); 
         return 0; 
}
 
请输入3个整数: 
12 
13 
14 
求和=39,求均值=13
 
二、数组的遍历
 
求数组长度,需要用sizeof运算符。
sizeof(数组变量名)这个算出来的是数组总长度所占字节数。
实际上,数组长度=总字节数/数组第一个元素的字节数。
 
#include <stdio.h> 

int main(){ 
         int a[3]={1,2,3}; 
         int i; 
        printf( "数组所占字节数为:%d\n",sizeof(a)); 
         for(i=0;i<sizeof(a)/sizeof(a[0]);i++){ 
            printf( "%d\n",a[i]); 
        } 
        getch(); 
         return 0; 
}
 
数组所占字节数为:12 


3
 
C中遍历数组还要注意一点就是不能在for语句的第一个初始化语句中定义变量。比如:for(int i =0;i<......  ,这是java 的写法。如果按照Java的写法写就挂了。
 
三、变长数组
 
#include <stdio.h> 

int main(){ 
         int x,i,sum=0,avg=0; 
         int a[x]; 
        printf( "请输入数组长度:" ); 
        scanf( "%d",&x); 
        printf( "请输入%d个整数:\n" ,x); 
         for(i=0;i<x;i++){ 
            scanf( "%d",&a[i]); 
        } 
        printf( "\n数组的长度为:%d",x); 
        printf( "\n数组的内容:" ); 
         for(i=0;i<x;i++){ 
             printf( "%d,",a[i]); 
        } 
        getch(); 
         return 0; 
}
 
请输入数组长度:4 
请输入4个整数: 





数组的长度为:4 
数组的内容:4,2,3,1,
 
四、字符数组
 
字符数组比较特殊点。
char c[3]={'a','b','c'};
char d[3]="abc";
 
两个数组是不同的:
1、长度不同:c长度是3,d长度是4.
2、一个正确,一个错误,c是正确,d是错误的。
正确写法应该是:
char c[3]={'a','b','c'};
char d[4]="abc";
 
五、字符串
 
C中,字符串和字符、字符数组有联系,上面看到了,但是也有很大差异。
1、明确说还没有定义字符串的关键字,如果有,那就是字符数组了。
2、字符串和字符除了双单引号的定义差别外,还有就是字符串总是以一个不可见的转移字符\0结尾,这个\0是字符串结束的标记。因此表面上看到的字符串长度总是比实际长度小1.
3、使用%s格式在printf函数中输入输出字符串。
 
六、多维数组
 
这些数组的特性和java中的完全一样,没啥好说的了。

你可能感兴趣的:(c,数组)