一、数组
1、定义
在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来,具有一定顺序关系的若干个变量的集合就是数组 。
2、特点
- 组成数组的各个变量称为数组的元素
- 数组中各元素的数据类型要求相同
- 元素在内存中是连续依次排列的
- 构造数据类型之一
二、一维数组
1、定义
- 只有一个下标的数组。它在计算机的内存中是连续存储的。
- C语言中,一维数组的说明一般形式如下:
<数据类型 > <数组名>[元素数量]
- 元素数量必须是整数
- 一旦创建不能改变元素的数量
int a[10];
2、一维数组的初始化
- 方式一:元素全部初始化
int a[5] = {1, 2, 3, 4, 5};
- 方式二:元素部分初始化
int a[5] ={1, 2 };
- 方式三:元素全部没初始化
int a[5];
全局数组默认是0,局部数组值是不确定
- 方式四:省略元素数量初始化
int a[ ] = {1, 2, 3, 4, 5};
数组元素数量的个数就是初始化数值的个数
3、一维数组的引用
- 数组必须先定义,后使用
- 只能逐个引用数组元素,不能一次引用整个数组
- 数组元素表示形式:数组名[下标]
其中:下标可以是常量或整型表达式
int a[10];
printf(“%d”, a); (×)
for(j=0;j<10;j++)
printf(“%d\t”, a[j]); (√)
4、一维数组的内存分配
- 数组的元素是连续存储的
- 数组占用内存空间 = 数组元素个数 * sizeof(元素数据类型)
5、数组名的含义
- 数组名代表整个数组
- 数组名代表数组的首地址 (类似指针,后面会讲)
- 数组占用内存空间 = sizeof(数组名)
- 数组元素个数 = sizeof(数组名) / sizeof(元素数据类型)
6、数组越界
- 数组越界是指数组下标取值超过了数组元素数量的大小,这样对数组元素的访问超出了数组范围
- C语言对数组不作越界检查,编译不报错,程序员要特别注意编程的严谨些。
int a[5]; a[5] = 10 (×)
三、二维数组
1、定义
(1)定义方式:数据类型 数组名[行数][列数]; →元素个数=行数*列数
int a[3][4];
float b[2][5];
(2)数组元素的存放顺序
- 二维数组:按行序优先
2、二维数组元素的引用
- 形式:数组名[下标][下标]
- 二维数组的初始化
3、二维数组的理解
4、二维数组的遍历
- 使用循环语句,打印二维数组的所有元素
// II. 打印二维数组中的字符串
for(i = 0; i < num; i++)
{
// 使用数组下标形式访问
printf("%s\n", array[i]);
// 使用指针访问
//printf("%s\n", *(array + i));
}