【C语言】数组知识总结(1)

一、数组定义

数组是相同数据类型的有序数据的集合。其中数据类型可以是 int 型 char 型 float型以及指针、结构体和共用体等类型。有序数据指的是数组中每个数据都有一个相对应的下标,并且是从0开始且依次递增的。带一个下标的为一维数组,带两个下标的为二维数组,带多个下标的为多维数组。

二、一维数组

类型名 数组名[常量表达式];
如:int a[6];
6 代表有6个元素,即数组的长度

  • 下标的取值范围是[0,数组长度-1],注意下标不能越界

  • 一般来说常量表达式可以是整型常量或符号常量,不能包含变量

    错误: int i=10;			正确:#define M 15
    	  int a[i];			      int a[M];//符号常量
    
  • 数组元素可以进行赋值和被引用

  • 初始化:

    类型名 数组名[数组长度]={初值表};
    int [5]={1,2,3,4,5};
    int [5]={1,2,3};//只对数组前三个元素赋初值 其他两个都为零
    int []={1,2,3,4};//系统会认为只有4个元素
    

三、二维数组

类型名 数组名 [常量表达式1] [常量表达式2]
常量表达式1表示数组第一维的长度(行数)
常量表达式2表示数组第一维的长度(列数)
如:int a[3][4];
代表三行四列,共12个元素

  • 初始化

    类型名 数组名[行数][列数]={初值表};
    int a[3][4]={
         
         {1,2,3,4},{5,6,7,8},{9,10,11,12}};
    int a[3][4]={
         
         {3},{2},{5}};//只对每一行第一列赋初值
    
  • 在定义数组时行数可以省略,但列数不能省略,下面是等价的

    int a[2][3]={3,5,7,9,11,13};
    int a[ ][3]={3,5,7,9,11,13};
    int a[ ][3]={
         
         {3,5,7},{9,11,13}};
    

四、字符数组

字符数组也分为一维数组和二维数组。

1.一维字符数组

char 数组名[常量表达式];
如:char str[5];

  • 初始化
char 数组名[常量表达式]={初值表};
char str[6]={'C','h','i','n','a','\0'};
  • 若初值表中初值的个数小于字符数组的长度,多余的元素为"\0",初值为0。因为字符"\0"代表整数0,也就是ASCII码为0的字符。但"\0"不是字符’0’,字符’0’的ASCII码值为48.

  • 当字符数组里是一个连续的字符串时,数组的长度应为数组元素个数+1,因为必须要加上"\0"

    char str[6]={'C','h','i','n','a','\0'};
    	 等价于char str[6]={"China"};
    

2.二维字符数组

char 数组名[常量表达式1][常量表达式2];
如:char str[5][10];

  • 初始化

    char book[4][10]={"hello","the","world","mengyuan"};
    

猜你喜欢

转载自blog.csdn.net/m0_74102736/article/details/130184131