想知道我们所用数据类型占用的字节大小,可以用sizeof(),这是C语言内置的,以字节为单位给出指定数据类型的大小。
C99和C11提供 %zd 转换说明匹配sizeof的返回类型(即 size_t 类型)。
若编译器不支持C99和C11,可用 %u(或者%lu)。
有符号整型:
/*用sizeof给出指定类型的大小*/
#include <stdio.h>
int main(void)
{
//有符号整型
printf("int 类型占用 %zd 个Byte。\n",sizeof(int));
printf("short 类型占用 %zd 个Byte。\n", sizeof(short));
printf("short int 类型占用 %zd 个Byte。\n", sizeof(short int));
printf("long 类型占用 %zd 个Byte。\n", sizeof(long));
printf("long int 类型占用 %zd 个Byte。\n", sizeof(long int));
printf("long long 类型占用 %zd 个Byte。\n", sizeof(long long));
return 0;
}
无符号整型:
//无符号整型
printf("unsigned int 类型占用 %zd 个Byte。\n", sizeof(unsigned int));
printf("unsigned short 类型占用 %zd 个Byte。\n", sizeof(unsigned short));
printf("unsigned short int 类型占用 %zd 个Byte。\n", sizeof(unsigned short int));
printf("unsigned long 类型占用 %zd 个Byte。\n", sizeof(unsigned long));
printf("unsigned long int 类型占用 %zd 个Byte。\n", sizeof(unsigned long int));
printf("unsigned long long 类型占用 %zd 个Byte。\n", sizeof(unsigned long long));
字符类型:
printf("char 类型占用 %zd 个Byte。\n", sizeof(char));
printf("signed char 类型占用 %zd 个Byte。\n", sizeof(signed char));
printf("unsigned char 类型占用 %zd 个Byte。\n", sizeof(unsigned char));
布尔类型:布尔类型是无符号int类型,只要够储存0或1就行了。
printf("_Bool 类型占用 %zd 个Byte。\n", sizeof(_Bool));
浮点类型:
//浮点类型
printf("float 类型占用 %zd 个Byte。\n", sizeof(float));
printf("double 类型占用 %zd 个Byte。\n", sizeof(double));
printf("long double 类型占用 %zd 个Byte。\n", sizeof(long double));