int a[3] = {1, 2,3};
1.重点一
不管是几维数组,数组名a永远都代表第一个元素的地址
(1)a<=>&a[0]、a+0<=>&a[0]
(2)数组名+1,就是第二个元素的地址
(虽然数组首地址和元素首地址的值一样,但意义完全不同)
2.重点二
a[0][0]
二维数组还是个一维数组,
只不过它的元素是—— 好几个 一维数组
所以a代表→第一个元素的地址(就是第一个数组)的地址
3.重点三
Int a[3];
关于&a (和几维数组无关。)
(1)&数组名,取的整个数组的地址,
(2)&a+1,整个数组就翻倍了。
———————————————————————————————
我觉得理解多维数组和指针,一定要记住3个逻辑
其一、2维数组的元素 是一个个 整个的1维数组
其二、不管多少是维数组,数组名永远代表 第1个数组元素的地址
其三、&+数组名,取的时整个数组的地址,而不是元素的地址。
转脚本之家的原文
http://www.jb51.net/article/54220.htm
_____________________________________________________________________________________
数组指针只能保存整个数组的首地址,不要去保存单个数组的元素的首地址。