簡體   English   中英

將int轉換為int指針地址

[英]Convert int to int pointers address

C ++

p指向特定位置

int * p

當我嘗試p=p[1]它說不能將int轉換為int(使用devcpp)。

雖然p=&p[1]可以正常工作

為什么需要第二種方法? p[1]是一個地址。 那么第一種方法應該可行嗎? 您能為我解釋這個錯誤嗎?

p[1]*(p + 1)

您需要此元素的地址 ,即(p + 1) 正如您所注意到的,C ++還允許&p[1]

p[1]等效於*(p + 1)因此它是一個值,而不是地址。 p = p + 1或只是p++就是您想要的。

pint* ,而p[1]是該數組中的一個元素,因此p[1]int

您可以通過其他方式執行p = &p[1] ,例如p = p + 1p++ 兩者都將p設置為相同的最終值。

請注意,使用指針進行此類算術運算時,它不會將地址增加1,也不會將地址增加一個元素大小的1倍,因此它的確是一樣的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM