【发布时间】:2012-01-28 11:20:19
【问题描述】:
我有以下一组代码
int main(){
int x = 36;
int const * p1;
p1 = &x;
printf("Values at p1: %d\n", *p1);
p1=0;
printf("Addresses pointed to by p1: %p ", &p1);
return 0;
}
给予
Addresses pointed to by p1 gives 0028FF480
int main(){
int x = 36;
int const * p1;
p1 = &x;
printf("Values at p1: %d\n", *p1);
p1=0;
printf("Addresses pointed to by p1: %p ", p1);
return 0;
}
p1 指向的地址为 00000000
为什么会有这样的差异..?我认为两者都会给我相同的价值。
【问题讨论】:
-
为什么你认为 p1 和 &p1 应该是一样的?
-
dev-c++ 带有一个古老的编译器。尝试使用 cdt 而不是 dev-c++ 的代码块或 qtcreator 或 eclipse。