繁体   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