1.数组的概念
1.1
数组是一组相同类型元素的集合
数组中存放的是1个或多个数据,但是数组元素个数不能为0
分为一维数组和多维数组(比较多见的是二维数组)
2.一维数组的创建
2.1基本语法
type arr_name[常量值]; →→类型 名字[大小];
//存放在数组中的值被称为元素
创建数组时可以规定数组的类型,名字和大小
2.2数组的初始化
数组的初始化一般使用大括号,将元素写在大括号中
完全初始化:给每一个元素准确的值
不完全初始化:其余元素默认为0
e.g. int arr[5] = {1,2,3,4,5};
当不指定大小的时候,数组的大小等于初始化中的元素值
2.3数组的类型
数组的类型是type[常量值]
e.g. int arr[5];的数组类型是int[5]
3.一维数组的使用
3.1数组下标
C语言规定数组的每个元素都有下标,从0开始,到n-1结束
数组的访问提供了一个操作符[ ],下标引用操作符,如arr[5]就是在数组arr中下标是5的元素
3.2数组的打印
4.一维数组的存储
//%p是专门打印地址的占位符,特点用16进制的形式打印,同时最前面的0不会省略
一维数组在内存中应该是连续存放的
5.sizeof计算数组元素个数
sizeof(数组名)——计算的是整个数组的大小,单位是字节
6.二维数组的创建
6.1二维数组的概念
“存放一维数组的数组”
以此类推,把二维数组作为数组元素的就是三维数组……统称多维数组
6.2二维数组的创建
type arr_name[常量1][常量2];//常量1定义行数,常量2定义列数
7.二维数组的初始化
7.1完全初始化
{ }中写出所有元素值
7.2不完全初始化
{ }中写出部分元素值
7.3按照行初始化
{ }中不同行用{ }隔开
7.4初始化时可以省略行,但是不能省略列
8.二维数组的使用
8.1二维数组的下标
行和列同样从0开始排序,若n行n列,则下标最大为[n-1][n-1]
8.2二维数组的输入和输出
9.二维数组在内存中的存储
二维数组在内存中也是连续存放的,一行存完放下一行
10.C99中的变长数组
在C99标准之前,创建数组只能使用固定的值
C99中给了一个变长数组的新特性,允许我们使用变量来指定数组大小(VS不支持C99中的变长数组)
变长数组不能初始化,数组的大小可以使用变量来指定,并不是说数组的大小可变,数组的大小一旦确定就不能改变
11.数组练习
11.1
多个字符从两端移动,向中间汇聚