平台: 64位编译器+LINUX+Gcc
#include<stdio.h>
main()
{
char a;
char* b;
short int c;
int d;
unsigned int e;
float f;
double g;
long h;
long long i;
unsigned long j;
printf("char a=%d\n",(int)sizeof(a));
printf("char*b=%d\n",(int)sizeof(b));
printf("short int c=%d\n",(int)sizeof(c));
printf("int d=%d\n",(int)sizeof(d));
printf("unsigned int e=%d\n",(int)sizeof(e));
printf("float f=%d\n",(int)sizeof(f));
printf("double g=%d\n",(int)sizeof(g));
printf("long h=%d\n",(int)sizeof(h));
printf("long long i=%d\n",(int)sizeof(i));
printf("unsiged long j=%d\n",(int)sizeof(j));
}
结果:
char a=1
char*b=8
short int c=2
int d=4
unsigned int e=4
float f=4
double g=8
long h=8
long long i=8
unsiged long j=8
其它编译器时的情况:
16位编译器
char :1个字节
char*(即指针变量): 2个字节
short int : 2个字节
int: 2个字节
unsigned int : 2个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
32位编译器
char :1个字节
char*: 4个字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节