短,int,long,float,double long,double,char的大小
我想找出(short / int / long / float / double / long double / char)大小,所以我写了下面的代码:
printf("shorttt%dn", sizeof(short));
printf("inttt%dn", sizeof(int));
printf("longtt%dn", sizeof(long));
printf("floattt%dn", sizeof(float));
printf("doublett%dn", sizeof(double));
printf("long doublet%dn", sizeof(long double));
printf("chartt%dn", sizeof(char));
但输出是:
type bytes
short 512
int 512
long 1024
float 1024
double 1024
long double 1024
char 256
为什么字节数如此之大?
它不应该是2,8,...?
sizeof
值为size_t
,而不是int
。 所以%d
是不合适的; 你正在调用未定义的行为。
要正确打印size_t
类型的数据,我建议使用printf("%zun", sizeof(float));
等等
使用:格式说明符long unsigned int。 它会正常工作。 例如:printf(“sizeof(long double)=% lu n”,sizeof(long double));
答:16
链接地址: http://www.djcxy.com/p/58335.html上一篇: Size of short, int, long, float, double long, double, char