[英]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++
就是您想要的。
p
是int*
,而p[1]
是該數組中的一個元素,因此p[1]
是int
。
您可以通過其他方式執行p = &p[1]
,例如p = p + 1
或p++
。 兩者都將p
設置為相同的最終值。
請注意,使用指針進行此類算術運算時,它不會將地址增加1,也不會將地址增加一個元素大小的1倍,因此它的確是一樣的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.