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)
该*运营商取消引用指针。换句话说,它给你它指向的东西。
name有类型int *,所以*name有类型int。这意味着sizeof(*name)与 相同sizeof(int),在您的系统上为 4。
同样,add有类型int *。这意味着sizeof(add)与 相同sizeof(int *),在您的系统上为 8。