「这是我参与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;
}
数组的分类:
一维数组
怎样定义一位数组
为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];
倒序输出数组元素:
二维数组
int a[3][4]
一共有12个元素,可以当做3行4列看待,这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}
};
遍历代码如下:
多维数组
因为内存是线性一维的,n维数组可以当做每个元素是n-1维数组的数组,所以说不存在多维数组。
总结:数组是一种构造数据类型,一个数组分解成多个数组元素,根据数组元素的类型不同,数组分为数值,指针,结构,字符等多种类别的数组。