2024年6月15日发(作者:)
一个指针变量到底占几个字节?
问:一个指针变量到底占几个字节?
答:因机器不同所占的字节数也有所不同。在32位的机器上,一个指针变量占4个
字节,在64位的机器上,一个指针变量占8个字节。
先看一个例子:
#include
Int main(void)
{
char ch =’A’;
int i = 99;
double x = 66.6;
char *p = &ch;
int * q = &i;
double * r =&x;
Printf(“%d %d %d n”,sizeof(p),sizeof(q),sizeof(r));
return 0;
}
上述代码中,定义了3个变量,分别是char、int、double类型,还定义了3个指
针变量p、q、r,分别指向char、int、double类型。然后输出这3个指针变量的值。
按理说,char占1个字节,int占4个字节,double占8个字节,当然分别指向它
们的指针变量所占的字节数应该是不同的。可是,果真是这样吗?编译后运行,我们得到
结果:
4 4 4 。
也就是说,分别指向3个不同类型的指针变量它们所占的字节数是相同的,都是4
个字节。
这是为什么呢?
首先,我们来看一看ch 、i、x这3个变量在内存中是如何存储的。


发布评论