我試圖通過交換地址而不是值來更改陣列的變數地址。我有一個交換陣列中數字的函式: a[0]=a[9] , a[9]=a[0], a 
uj5u.com熱心網友回復:
您不能交換陣列元素的地址。陣列元素都按順序存盤在記憶體中。如果一個整數在記憶體中占用 4 個位元組,對于一個大小為 10 的陣列,總共在記憶體中占用 40 個連續位元組。該陣列a指向這 40 個位元組的開頭地址,當您索引它時,索引乘以sizeof(int) = 4. 因此,地址a[1]等于a 4的地址,地址a[9]等于 9 a* 4的地址。
如圖所示,陣列元素的地址都是連續的,僅相差 4 個位元組。例如,您可以說出指向 的a = a 20原因,但隨后陣列的其余元素也被移動,并將指向之后,如上所述。從技術上講,您只能更改陣列開頭指向的位置,而無法更改陣列中間指向的位置。a[0]a[5]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/439011.html
