一.一维数组
1.格式:数据类型 数组名 [数组大小]={初始值列表}
例:int a[5};
说明:
(1)元素类型名定义数组中每个元素的类型
(2)数组名的命名规则同变量名一合法的标识符
(3)[ ]中的数组长度表示该数组中包含的元素个数。应为常量表达式(常量和符号常量),不允许有变量
(4)内存大小=数组大小 x sizeof(数据类型)
(5)像简单变量一样,数组元素必须先定义后引用。
2.使用const声明数组
有时需要把数组设置为只读。这样,程序只能从数组中检索值,不能吧新值写入数组。要创建只读数组,应该用const声明和初始化数组。
3.给数组元素赋值
声明数组后,可以借助数组下标(或索引)给数组元素赋值。
4.数据边界
使用数组时,要防止数组下标超出边界。也就是说,必须确保下标是有效的值。例如,假设有下面的声明:
int doofi [20];
那么在使用该数组时,要确保程序中使用数组下标在0~19的范围内。编译器 不会检查数组下标是否使用得当。
二.二维数组
格式: 数据类型 数组名 [行数] [列数]={初始值列表 };
例:int c[3][10]
说明:
(1)数组名的命名规则同变量名一合法的标识符
(2)行数、列数分别表示二维数组应有多少行、多少列。即:行数代表第一维下标的长度,列数代表第二维下标的长度。行数、列数应为常量表达式(常量和符号常量),不允许是变量。
(3)内存大小=行数x 列数 x sizeof(数据类型)
(4)像简单变量一样,数组元素必须先定义后引用
(5)二维数组可以看作是一种特殊的一维数组
格式:数据类型 数据名 [行数] [列数] = {初始值列表}
用 { } 将每行元素括起来,对部分元素赋初值
语法格式:数组名 [行下标] [列下标]
1)下标为所访问的数据b元素在数组中的行和列的位置序号(均从0开始编号)
2)行下标的有效范围为:0口列下标的有效范围为:
0 ~ 行数- 1
0 ~ 列数- 1
6.const的其他内容
(1)指向const 的指针不能用于改变值。
(2)指针赋值和const需要注意:
首先,把const数据或非const 数据的地址初始化为指向const 的指针或为其赋值是合法的;其次,只能把const数据的地址赋给普通指针。
三,指针和多维数组
1.假设有下面的声明:
int zippo [4] [2];
然后数组名zippo是该数组首元素的地址。
(1)因为zippo是数组首元素的地址,所以zippo的值和&zippo[0]的值相同。
(2)给指针或地址加1,其值会增加对应类型大小的数值。
(3)解引用一个指针(在指针前使用*运算符)或在数组名后使用带下标的 [] 运算符。得到解引用对象代表的值。
2.指向多维数组的指针
int (* pz)[2]; //pz指向一个内含两个int类型值的数值
int *pax [2]; //pax是一个内含两个指针元素的数组,每个元素都指向 int 的指针
由于[]的优先级高,先于pax结合,所以pax成为一个内含两个元素的数组。