内置类型:
#include<stdio.h>
int main(){
printf("int :%d\n",sizeof(int));
printf("short :%d\n",sizeof(short));
printf("char :%d\n",sizeof(char));
printf("unsigned int :%d\n",sizeof(unsigned));
printf("long :%d\n",sizeof(long));
printf("long long :%d\n",sizeof(long long));
printf("float :%d\n",sizeof(float));
printf("double :%d\n",sizeof(double));
printf("long double :%d\n",sizeof(long double));
return 0;
}
32位系统下,整形占4个字节。64位下,占8个。
结果:int :4
short :2
char :1
unsigned int :4
long :8
long long :8
float :4
double :8
long double :16
复合类型
#include<stdio.h>
struct test{
int a,b,c;
};
int main(){
int a[10];
int *i;
char *c;
double *d;
struct test var;
printf("a[10]: %d\n",sizeof(a));
printf("int *: %d\n",sizeof(i));
printf("char *: %d\n",sizeof(c));
printf("double *: %d\n",sizeof(d));
printf("struct: %d\n",sizeof(var));
return 0;
}
结果:
a[10]: 40
int *: 8
char *: 8
double *: 8
struct: 12
数组有10个元素,4*10=40个字节,指针所占字节与系统有关,占4个字节。
结构体中元素3个int型,12个字节。