欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数组学习

程序员文章站 2024-02-25 08:10:40
...

数组:

一、数组简介

什么是数组:变量的组合,是一种批量定义变量的方式
定义:类型 数组名[数量]
int arr[5]; == int a,b,c,d,e;

使用:数组名 [下标]
下标:从0开始到数量-1
遍历:与for循环配合使用,使用循环变量i当做数组下标

初始化:类型 数组名[数量] = {1,2,3…}
1、数组与普通变量一样默认值是随机,为安全也要对数组进行初始化
2、这种初始化语法只能在定义数组时使用,而且不能整体赋值
3、如果初始化数据过多,编译器会丢弃并且警告
4、如果初始化数据不足,编译器则补零
5、初始化数组长度时可以省略,编译器会自动统计数据的个数,然后告诉数组
sizeof(arr)/sizeof(arr[0]); == 数组长度
数组的越界:
为了程序的运行效率,不会检查数组的下标
数组越界的后果
1、一切正常
2、段错误
3、脏数据(指行为)

二、二维数组:

一位数组相当于把变量排成一排,通过编号访问
二维数组相当于把变量排成矩阵,通过行号和列号访问

定义:类型 数组名[行数][列数]
int a[3][2] = [0,0] [0,1]
[1,0] [1,1]
[2,0] [2,1]

使用:数组名[行下标][列下标]
遍历:需要与双层for循环配合,外层循环负责遍历行,内层循环负责遍历列

for(int i = 0;i < 3;i++)
{   
    for(int j = 0;j < 5;j++)
    {   
        printf("%d ",arr[i][j]);    
    }   
    printf("\n");
}

初始化:类型 数组名[行数][列数] = {{第一行},{第二行},{第三行}};
注意:用上面的方法初始化时,前n行要加逗号最后一行不用加逗号

三、变长数组:

定义:使用变量作为数组的长度,在代码编译期间数组的长度时不确定的,当执行到数组定义语句时,长度才能确定下来,当数组长度确定后无法更改

优点:可以根据实际情况确定数组长度,节约内存空间

缺点:无法初始化

相关标签: c语言