指针值*x&x和x

Fab*_*cio 4 c pointers

假设这段代码:

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

das*_*ght 9

  • *x 是值(正确)
  • x是值的地址.编辑在你的情况下,这个地址是未初始化的,所以它没有特别指向任何地方(感谢Keith Nicholas提到这一点).
  • &x是[ 包含该值的地址]的指针的地址.

(值得指出你的程序可能会崩溃:)


sta*_*ker 5

Adr     value    expression
----------------------------------------------
5448392 2293524  &x address of x
2293524 3         x place where you assigned 3
Run Code Online (Sandbox Code Playgroud)