两种说法都做同样的事情

时间:2014-08-19 16:59:13

标签: c++ pointers

我很遗憾地问你这个,但我是新手,遇到了这个指针问题。你能否向我解释为什么这两个陈述最终会做同样的事情?

int i=7;
第一种方式

*

int *ptrInt;
ptrInt=&i;

********** 第二种方式

int *p_anotherWay=i;

2 个答案:

答案 0 :(得分:4)

他们没有。

第一个语句将i的内存地址值赋给ptrInt 第二个语句将i本身的值分配给ptrInt,而不是其地址。

此外,第二个陈述并非完全正确。它在一些编译器上编译,而不在其他编译器上编译。 (这些'其他'实际上是正确的做法)

答案 1 :(得分:0)

int i = 7;
int *pI = &i; // pointer to i
int *pSomewhere = (int*)i; // pointer to address 0x7