【发布时间】:2020-01-05 17:18:40
【问题描述】:
我在对指针做一些操作时遇到了这个:
int main(void)
{
int a = 100;
int *p, *q;
p = &a;
q = &p;
printf("\n *q= %p",*q);
printf("\n &p= %p",&p);
printf("\n *p= %d",*p);
printf("\n q= %p",q);
printf("\n p= %p",p);
printf("\n &a= %p",&a);
return 0;
}
这给了我以下输出
*q= 0xe5b83d74
&p= 0x7ffee5b83d78
*p= 100
q= 0x7ffee5b83d78
p= 0x7ffee5b83d74
&a= 0x7ffee5b83d74
*q 给出的值与a 的地址相似但不一样。 *q 不是指&a 吗? 我不想更正此代码。这里实际发生了什么?
【问题讨论】:
标签: c pointers memory-address