0
如果我想要一個變量在任何時候都等於另一個變量,我使用一個指針: p = & a * p總是等於a,而不管是否有變化。 但是如果我想要一個變量與ARR [ID]相同,但身份證,數組的索引,變化總是在我的程序我不能使用:數組索引的變化
p1=&Id p2=&arr[*p1]
因爲* P2總是會等於初始索引處數組的值,如果索引更改* p2不會隨之改變。 如何解決此問題,並獲得* p2更改每次Id更改?
如果我想要一個變量在任何時候都等於另一個變量,我使用一個指針: p = & a * p總是等於a,而不管是否有變化。 但是如果我想要一個變量與ARR [ID]相同,但身份證,數組的索引,變化總是在我的程序我不能使用:數組索引的變化
p1=&Id p2=&arr[*p1]
因爲* P2總是會等於初始索引處數組的值,如果索引更改* p2不會隨之改變。 如何解決此問題,並獲得* p2更改每次Id更改?
讓我們來看看爲什麼它一審
p = &a;
這裏a
有一個地址,說0x100
,而這個地址存儲在變量p
。現在,即使a
發生更改,地址仍保持不變,並且p
的值仍將爲0x100
。 *p
將給出a的更新值。
對於第二種情況,
p = &a[d]
這裏如果a
是0x100
和d
是5和a
是字符數組,然後p
將持有的值0x105
如果index d
的變化,將被使用,那麼該地址在數組中會改變,例如如果d
是2
然後地址的使用是0x102
由於地址變化,p
值將不得不改變,它有在下次使用前重新分配。
afaik,沒辦法做到 – Danh
XY問題在這裏,我猜。你真的想達到什麼目的?因爲'p2 = arr'和'p2 [changing_id]'可以成爲這裏的解決方案。 – LPs