int mcai[3][2] = {};
mcai = &mcai[0] = & &mcai[0][0]
**mcai = *mcai[0] = mcai[0][0]
∵mcai = mcai[0] = &mcai[0][0]
∴mcai=&mcai[0][0]//错_
理解不了的就是为什么mcai和mcai[0]会是同一个地址,一个地址能存两个指针吗?
(就像一个地址存数组那样?
还有就是为什么mcai指向mcai[0]后,明明同样的地址,mcai[0]会指向mcai[0][0]而不是指回mcai;
感觉是同一个问题,实在理解不了求解救
学到指针和数组,发现个理解不了的逻辑,虽然好像不影响使用但不知道原理,很是纠结,求大神解脱
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
4条回答 默认 最新
das白 2017-08-05 03:11关注你最上面写的是mcai = &mcai[0] = & &mcai[0][0]
意思就是 mcai=&&mcai[0][0]
最下面写的是 mcai=&mcai[0][0] 你是不是推跑偏了 推着推着怎么把原来的结论推翻了
mcai = mcai[0]?? 不一样的吧
你**mcai = mcai[0] = mcai[0][0]
∵mcai = mcai[0] = &mcai[0][0] 这里感觉好别扭 按照你的推理 **mcai 去掉俩 为什么等于mcai[0]去掉一个*
数组的话 你先把一维数组理解好 指针加偏移
二维数组就是 指针的指针本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报