数组

96 阅读2分钟

「这是我参与2022首次更文挑战的第6天,活动详情查看:2022首次更文挑战」。

为什么需要数组:

为了解决大量同类型数据的存储和使用问题和模拟现实世界
int main(void)
{
    int a[5] = {1,2,3,4,5};
            //a是数组的名字,5表示数组的个数,{}里的表示数组元素。
    int i;
    for(i=0;i<5;i++)
        printf("%d\n",a[i]);
        
    return 0;
}

image.png

数组的分类:

一维数组

   怎样定义一位数组
       为n个变量连续分配存储空间
       所有的变量数据类型必须相同
       所有变量所占的字节大小必须相等
       数组名代表数组第一个元素的地址!!!
   完全初始化:int a[5] = {1,2,3,4,5};
   不完全初始化:int a[5] = {1,2,3};//未初始化的元素自动为零。
   不初始化:int a[5];//所有元素为垃圾值
   清零:int a[5] = {0};
   错误写法:int a[5];
   a[5] = {1,2,3,4,5};//错误
   只有在定义数组的同时才可以整体赋值,其他情况下整体赋值都是错误的。
   如果要把a数组中的值全部赋值给b数组,错误的写法
       b = a;
       正确的写法
       for (i=0;i<5;i++)
           b[i] = a[i];
   倒序输出数组元素:
   

image.png

二维数组

    int a[3][4]
    一共有12个元素,可以当做34列看待,这12个元素依次是a[0][0]  a[0][1]  a[0][2]  a[0][3]  a[1][0] 
    a[1][1]    a[1][2]...
    int a[m][n];该二维数组的最大位置的元素只能是a[m-1][n-1]
    初始化:
        int a[2][3] = {1,2,3,4,5,6};
        int a[2][3] = {
                 {1,2,3},
                 {4,5,6}
        };

遍历代码如下:
image.png

多维数组

因为内存是线性一维的,n维数组可以当做每个元素是n-1维数组的数组,所以说不存在多维数组。

image.png

总结:数组是一种构造数据类型,一个数组分解成多个数组元素,根据数组元素的类型不同,数组分为数值,指针,结构,字符等多种类别的数组。