69,512
社区成员
![](https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png)
![](https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png)
![](https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png)
![](https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png)
#include<stdio.h>
struct INFO
{
int a;
char b;
double c;
};
int main()
{
int *p;
char *p1;
float *p2;
double *p3;
struct INFO *p4; //struct INFO类型为结构体类型
void *p5;
printf("int point size is :%d\n",sizeof(p));
printf("char point size is :%d\n",sizeof(p1));
printf("float point size is :%d\n",sizeof(p2));
printf("double point size is :%d\n",sizeof(p3));
printf("struct point size is :%d\n",sizeof(p4));
printf("void point size is :%d\n",sizeof(p5));
return 0;
}
你看看编译器是32位还是64位,64位打印出来是8
理论上,它与操作系统无关,与编译器及生成代码的位数有关(当然,32位系统下是不能运行63位程序的)
在64位系统上,用分别用32/64位结果如下
电脑是64位操作系统