作者zzss2003 (brotherD)
看板C_and_CPP
标题[问题] 2D array的address
时间Mon Apr 23 11:20:44 2018
图片:
https://imgur.com/a/8Q7d3GH
在这个影集当中,我不懂为什麽*B or B[0]是400,不是应该是2吗?
&B[0][0]是400我能理解,但没办法理解*B与B[0],影片中也没提到为什麽
自己用了GCC,compile後也是同样结果
能请前辈们提供一下线索吗?_?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.248.26.157
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1524453646.A.F14.html
1F:→ asilzheng: 都是指到同一个记忆体位置啊 04/23 11:32
2F:推 KanzakiHAria: B[0][0]才是2 你这根上一篇有类似的状况 04/23 11:44
3F:→ KanzakiHAria: B的型态是 int[2][3] 04/23 11:45
4F:→ KanzakiHAria: 原来就是同一个人XD 04/23 11:46
5F:→ KanzakiHAria: 所以简单说B[0]的型态是 int[3] 04/23 11:46
6F:→ KanzakiHAria: B[0][0]才是int 04/23 11:47
7F:→ KanzakiHAria: 你去看sizeof(B) sizeof(B[0]) 和sizeof(B[0][0]) 04/23 11:49
8F:推 attis: 他少画一个阵列 你自己画两格连续位址 第一格写B[0]拉根箭 05/05 18:15
9F:→ attis: 头指向B[0][0] 第二格写B[1]箭头指向B[1][0] 这样你就看得 05/05 18:15
10F:→ attis: 懂了 05/05 18:15