C语言中,一个指针占用的空间是多大?和指针类型有关系吗?

如题所述

指针和其指向的数据类型有关系,你可以用sizeof()来做测试:
printf("the size of char is %d\n",sizeof(int*));
printf("the size of char is %d\n",sizeof(char*));

另外,指向结构体的指针就要看具体情况了,C语言还有所谓的“对齐机制”,就是结构体里的单元,所分配的空间实际上要参照结构体里“体积”最大的那个单元。就是说,比如一个char和一个int,char要向int看齐,一个char和一个double,char要向double看齐。关键就在于凑整数,凑成最大变量大小的倍数。当然,如果结构体里只有char型的变量或是数组,就不存在一定要凑数的问题了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-06-09
2字节,声明为far时为4字节
相似回答