数组是大多数编程语言的重头戏,数组的存储大多离不开数组,所以数组常用写法的具体含义就显得尤为重要.
一维数组:
int a[]={1,2,3,4,5,6};
存储结构:
常用的表示方法:
(1)a:数组名表示数组首元素的地址&a[0],视为指针int*
(2)a+1或者*(a+1):指针指向的地址后移一个单元格,保存&a[1],视为指针
int*
(3)a[0]:数组的第一个元素,视为int
二维数组:
int a[][3]={1,2,3,4,5,6};
存储结构:
常用表示方法:
(1)a:在二维数组中我们就不能说它是指向数组元素的首地址,因为这个首元素的说法显然是不合理的,所以我们以行为基准把一行看成一个元素:
a[0][0]=1
此时保存的是这一行元素的地址,也就是
指向一维数组的指针int(*p)[3],
也称数组指针.
a+1:这个加一操作还是以行为基准,直接下移一行,保存下一行元素的地址,即数组指针int(*(p+1))[3].
a[1]1[0]=4
a[0]:第一行的元素,是一个一维数组也是整形指针
a[0]+1:在a[0]的基础上后移一个单元格,指向该元素,整形指针.
a[0][0]:一个确切的整形数据