C语言中的数组


首先了解一下数组,数组就是一个变量的组

这样方便管理变量

首先看下变量的声明:
    int aaa[] = {1,2,3,4,5};

  int 是这个数组元素的类型,此处是int类型的

  aaa[] 此处的aaa是这个数组的名字,一般说,这个数组aaa,在aaa的后边还有个放扩弧,这个放扩弧里是数组的个数,这里没有特意在声明的时候说出来这个数组有几个数字,但是这儿我们直接给这个数组赋值了,编译器会自动按赋值的个数来给放扩弧内加上它的个数,如果我们不直接给他们赋值的话,则声明如下:

    int aaa[5];

就是这样声明的,这样的声明就告诉操作系统,我现在需要5个int类型变量的内存空间,5个内存空间的集合叫做aaa,则操作系统就给aaa这个数组预留出5个int值的内存空间,上边的声明方式是直接告诉内存我要存这些int类型的值,我不告诉你我要多少个,我只是告诉操作系统,我的aaa里存放这些int类型的东西,所有这两种声明模式都是样的。

不管每种声明,数组遵循一个规律,就是数组的下标,不管怎么声明,数组的下标是一定存在的例如:

aaa[] = {1,1,2,4,5,6}

它的下标如下分布:

数组aaa的第一个值是1,下标为0 第二个值是1,下标为1,第三个值是2则下标为2,第6个值是5它的下标是5

也就是说从数组的第一个元素开始对应下标为0开始依次增长!

下边用例子看看这两种方式的数组声明:

[root@CWG hc]# cat sz.c
#include <stdio.h>
main()
{
    int aaa[] = {1,2,3,4,5};                                      //声明一个元素为int类型的数组内容是1,2,3,4,5
    printf("%d = %d\n", aaa[2], aaa[3]);              //打印数组aaa的下标为2的值和下标为3的值,数组取值就是通过下标来获取获取下标为n则是aaa[n]
   
    int bbb[9];                                                          //声明一个包含9个int类型数值的数组bbb 


    int i = 0;                                                              //初始化一个循环变量
    while (i != 9) {               
        bbb[i] = i;                                                        //循环体,循环给数组bbb赋值一共9个元素,下标是从1~8
        i++;
    }
    for (i = 0; i < 9; ++i)                                           
        printf("%d\n", bbb[i]);                                    //循环打印出数组bbb的值
}

执行情况如下:

[root@CWG hc]# ./sz
3 = 4                                      //打印出了数组aaa的下标为2的值和aaa数组下标为3的值
0                                              //for循环依次循环打印出了数组bbb的所有有while循环赋过值的结果
1
2
3
4
5
6
7
8

C语言变长数组之剖析

C语言需要注意的问题

C语言位域的使用及其注意点

相关内容