有一个二维数组a[3][3],如果我要通过指针为这个二维数组赋值,而这个数组的数组名本来就是这个数

有一个二维数组a[3][3],如果我要通过指针为这个二维数组赋值,而这个数组的数组名本来就是这个数组的指针,而现在我要用它的数组名做为这个数组的指针。按照书上说的,先把这... 有一个二维数组a[3][3],如果我要通过指针为这个二维数组赋值,而这个数组的数组名本来就是这个数组的指针,而现在我要用它的数组名做为这个数组的指针。按照书上说的,先把这个二维数组看做由一个有三个元素的一维数组a={a[0],a[1],a[2]},还说数组名就是控制行的指针,里面三个元素本身也是数组,a[0]由a[0][0]a[0][1]a[0][2]元素组成。a[1]由
a[1][0]a[1][1]a[1][2]组成。a[2]由
a[2][0]a[2][1]a[2][2]组成。
如果这样,a+1这就表示指向第二行,以此类推。如果a[0]+1泽表示指向第二列。书上是怎么说的。但是我有疑惑:既然都把二维数组看成一个有三个元素构成的一维数组,那么 a就是a[0],a[1],a[2]这三个元素的指针了吧?因为a=&a[0]两个完全等价所以又可以这样写a+1=&a[0]+1这样写吧?刚才说了数组a的三个元素又是数组,所以三个数组名就是指向各自所带有的元素的指针了。那么a+1=&a[0]+1,因为a[0]=&a[0][0]又等价。所以a+1=&a[0][0]+1。行在移动的时候,列也同时在移动?如果是这样得出来的只有得到原先数组的对角元素了。我该怎么理解用指针为二维数组赋值?求大神指点我,在线等你的答复,谢谢。
展开
 我来答
kshz1351302
2015-07-14 · TA获得超过126个赞
知道小有建树答主
回答量:128
采纳率:100%
帮助的人:60.2万
展开全部
a+1=&a[0]+1,因为a[0]=&a[0][0]又等价。所以a+1=&a[0][0]+1

这不对哦
应该是 a+1=&(&a[0][0]) + 1
追问
貌似我想通了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式