Re: [問題] 2D array的address

作者: zzss2003 (brotherD)   2018-04-24 10:45:51
K大謝謝您的提醒,讓我知道B B[0]與B[0][0]的型別都不一樣
但我知道型別的差異後,我還是不知道我問的問題的答案(資質不好QQ)
但我自己有想到一個方法,提供給您參考看符不符合邏輯
假設B為1D array
B //address of first element in array
*B //value
B[0] //value
因為B為1D array,所以只要一個[](*)便能夠取值
假設B為2D array
B //address of first element in array
*B //因為只有一個*,所以還不能取到value
B[0] //因為只有一個[],所以還不能取到value
也就是說,以下:
printf("%p\n",B); // 400
printf("%p\n",**B); // 2
printf("%p\n",*B[0]);// 2
作者: jerryh001   2018-04-24 10:59:00
正確來講B是 addr of array 不過就像其他人說的有歷史問題 所以是第一個元素地址也沒錯
作者: AstralBrain   2018-04-24 13:36:00
B不是address啊 他就是那個array
作者: CoNsTaR ((const *))   2018-04-25 00:16:00
正確來講ooo不過xxx也正確說兩個都正確很要命嗎…
作者: jerryh001   2018-04-25 01:02:00
不是這樣說吧 一個像是原始定義 一個是最終結果
作者: AstralBrain   2018-04-25 22:29:00
看你要不要分清楚 "是指標" 和 "可以轉型成指標"這兩件事, 當然如果你覺得當成一樣的比較好理解也是可以

Links booklink

Contact Us: admin [ a t ] ucptt.com