指针大小(*variable VS variable)

Bla*_*_99 2 c++ pointers sizeof

根据我的理解,在 32 位机器上,指针大小是 32 位(4 字节),而在 64 位机器上是 8 字节。无论它们指向什么数据类型,它们的大小都是固定的。我的计算机在 64 位上运行,但是当我打印包含 * 的大小时,我得到 4 。为什么呢 ?打印变量和打印 * 变量有什么区别。

   int *name = NULL;
    int *add = NULL;

    cout<< sizeof (*name) << endl; // Prints 4
    cout << sizeof (add); //Prints 8
Run Code Online (Sandbox Code Playgroud)

dbu*_*ush 5

*运营商取消引用指针。换句话说,它给你它指向的东西。

name有类型int *,所以*name有类型int。这意味着sizeof(*name)与 相同sizeof(int),在您的系统上为 4。

同样,add有类型int *。这意味着sizeof(add)与 相同sizeof(int *),在您的系统上为 8。