假设这段代码:
main()
{
int *x;
*x = 3;
printf("%d %d %d\n", *x, &x, x);
// output 3 5448392 2293524
}
Run Code Online (Sandbox Code Playgroud)
如果*x是价值; &x地址; 什么意味着价值x?
*x 是值(正确)x是值的地址.编辑在你的情况下,这个地址是未初始化的,所以它没有特别指向任何地方(感谢Keith Nicholas提到这一点).&x是[ 应包含该值的地址]的指针的地址.(值得指出你的程序可能会崩溃:)
Adr value expression
----------------------------------------------
5448392 2293524 &x address of x
2293524 3 x place where you assigned 3
Run Code Online (Sandbox Code Playgroud)