1.一维数组
(1)定义:int a[k] × , int a[5] √
定义数组时,长度一定是确定的(除非初始化确定几个元素,可省去下标)
例如:int a[] = {1,2,3,4,5}
int a[5]:分配了20个连续字节空间,对于整个数组来说:a[0](低字节)----- a[4](高字节),但是在a[0]等元素的内部不确定地址的高低排序(与系统设定有关,大端模式:低对高,小端模式:高对高)
(2)初始化:int a[5] = {1,2,3,4,5} // 对所有元素初始化
int a[5] = {1, 2}未赋值的自动赋0;
注意:未初始化的局部变量是垃圾值,全局变量是0.例如
运行结果是:0 0 0 0 0
运行结果是:垃圾值
(3)打印:一维数组用for循环输出
注意: sizeof(a)/ sizeof(a[0])来算数组长度
(4)一维数组地址问题
假设定义这样一个一维数组:int a[5]
运行结果:
可以看出来a + 1的地址在原地址上增加了 4个字节,而&a + 1的地址在原地址上增加了 20 个字节
2.二维数组
(1)定义及初始化
a [2] [3] = {{1,2,3},{4,5,6}}正规方法
a [2] [3] = {1,2,3,4,5,6} 不正规方法,可能会报错
(2)打印:用双重for循环
(3)二维数组地址问题
运行结果:
*注意:a[x] = (a + x)