我很遗憾地问你这个,但我是新手,遇到了这个指针问题。你能否向我解释为什么这两个陈述最终会做同样的事情?
int i=7;
第一种方式*
int *ptrInt;
ptrInt=&i;
********** 第二种方式
int *p_anotherWay=i;
答案 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