在關于指標的教程視頻 ( 
給出了有關該代碼的以下事實:
- 列印 B(或 &B[0])將回傳 400(第一個子陣列的地址)
- 列印 *B(或 B[0] 或 &B[0][0])將回傳 400(第一個子陣列中第一個元素的地址)
我對這一點的理解有點掙扎。怎樣才能B和*B擁有相同的價值?從圖中我們可以清楚地看到,在地址400下面有一個值2。如果B= 400,那么*B= 2!
我的理解是, 的值B將是記憶體中外部陣列的第一個元素的地址。然后,*B將回傳記憶體中第一個子陣列的地址。
根據圖示,B(未顯示)的值為 400。然后,在 400 以下,有第一個子陣列的第一個值。子陣列的地址存盤在哪里?
uj5u.com熱心網友回復:
B并且*B不具有相同的值,它們具有不同的型別,即int[2][3]and int[3],但它們在記憶體中具有相同的地址,即:400如圖所示。
將其B視為建筑物和B[0]底層。它們沒有相同的值(以 $ 為單位),但它們具有相同的地址(和郵政編碼)。
這種比較適用于傳遞B或傳遞B[0]給函式(送貨公司):您傳遞的不是實際建筑物,而只是傳遞其街道地址和型別名稱。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/394530.html
上一篇:如何使用相關值作為使用Dapper構建的模型中的選擇串列DataTextField
下一篇:洗掉向量中的動態元素
