将int转换为int指针地址

时间:2013-07-11 23:01:08

标签: c++ c pointers

C ++

p指向特定的地方

int * p

当我尝试p=p[1]时,它表示无法将int转换为int(使用devcpp)。

p=&p[1]工作正常

为什么我需要做第二种方法? p[1]是一个地址。那么第一种方法应该有效吗? 你能解释一下这个错误吗?

3 个答案:

答案 0 :(得分:1)

p[1]*(p + 1)相同。

你想要地址这个元素,它只是(p + 1)。正如您所注意到的,C ++也允许&p[1]

答案 1 :(得分:0)

p[1]相当于*(p + 1)所以它是一个值,而不是一个地址。 p = p + 1p++只是你想要的。

答案 2 :(得分:0)

虽然pint*,但p[1]是该数组中的元素,因此p[1]int

您可以通过其他方式执行p = &p[1],例如p = p + 1p++。两者都会将p设置为相同的最终值。

注意当使用指针进行这样的算术运算时,它不会将地址增加1,它会将其递增1倍于一个元素的大小,所以它实际上是相同的。