【发布时间】:2011-10-10 06:29:00
【问题描述】:
今天出于好奇,我尝试了一些非常奇怪的东西:
代码:
int num = 2;
int * point = #
printf("%p\n" , &point);
问题:
1) 我做的第一件事是将变量num 的地址附加到指针point 之后,然后我使用printf() 打印出存储在指针point 中的地址。
2) 稍后,我只是尝试修改代码(上面的代码),看看它会给出什么行为,即使用printf() 打印出指针point 的地址,而不是打印出地址存储在指针point中,这是变量num的地址。
3) 尽管地址与变量 num 的地址不同,但它仍然会打印我的地址,只是想知道这种行为在 C 标准中是否得到了很好的定义?为什么指针也有自己的地址因为我认为它的工作是存储其他变量地址。
感谢您花时间阅读本文。
【问题讨论】:
标签: c pointers memory-address