数组

一维数组的定义和初始化

数组:是一组具有相同类型的变量的集合

数组名:用以识别该组相同类型数据的名字

数组元素:构成数组的每个数据项

数组下标

数组的基类型:数组中元素的类型

数组的维数:下标的个数

一维数组的格式:类型 数组名[元素个数];


注意,C语言中的下标都是从0开始的

为了访问数组中的每个元素,可以通过数组名加上标值得形式,在数组名的右侧添加方括号,然后将下标值写在其中。


在定义数组时不能使用变量定义数组的大小

一维数组的初始化

定义但未进行初始化的数组元素的值仍然是随机数。

初始化方法

将元素初值放在=后面用一对花括号括起来的初始化列表中。

1
int score[5] = {90,80,70,100,95};

初始化的值不能多于数组元素个数,也可以不规定数组元素个数,机器会自动识别;

当初始化的值不够数组元素个数时,机器会自动将其他的补位0

二维数组的定义和初始化

定义一般格式

类型 数组名[第一维长度] [第二维长度]

第一维长度代表数组的行数,第二维长度代表数组的列数

计算机中数组计算所占内存的方法

  • 一维数组在内存中占用的字节数为:数组长度 * sizeof(基类型)
  • 二维数组在内存中占用的字节数为:第一维长度 * 第二维长度 * sizeof(基类型)

相数组输入和输出数据

原理:由于C语言中不带下标的数组名具有特殊的含义,它代表数组的首地址,因此不能整体引用一个数组,每次只能引用指定下标值得数组元素

输入数据

1
2
3
4
5
6
7
for(i = 0; i < 3; i++)
{
for(j = 0; j < 4; j++)
{
scanf("%d", &matrix[i][j]);
}
}

输出数据

1
2
3
4
5
6
7
for(i = 0; i < 3; i++)
{
for(j = 0; j < 4; j++)
{
printf("%4d", &matrix[i][j]);
}
}

注意

当对数组的全部元素进行初始化时,第一维的长度声明可以忽略

数组的第二维的长度声明永远不能省略

向函数传递一维数组

数组元素和基本型变量一样,既可以出现在任何合法的C表达式中,也可用作函数参数

数组作为参数的方式

若要把一个数组传递给一个函数,那么只要使用不带方括号的数组名作为函数实参调用函数即可

注意,仅仅是数组名,不带方括号和下标

按值传递

由于数组名代表数组第一个元素的地址,因此用数组名作函数实参实际上是将数组的首地址传给被调函数

注意:数组作为函数形参时,数组的长度可以不出现在数组名后面的方括号内,通常用另一个整型形参来指定数组的长度

向函数传递二维数组

当形参被声明为二维数组时,可以省略数组的第一维长度声明,但不能忽略数组的第二维的长度声明

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2015-2023 dwx
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信