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

来源:百度知道 编辑:UC知道 时间:2024/05/25 13:15:55

指针和其指向的数据类型有关系,你可以用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型的变量或是数组,就不存在一定要凑数的问题了。

2字节,声明为far时为4字节