【发布时间】:2013-08-15 08:01:54
【问题描述】:
例如,
#include <stdio.h>
int main (void) {
int x = 5;
double y = 6;
int z = x+y;
printf("size of z = %d bytes",sizeof(z));
return 0;
}
输出是4字节,为什么不转换成双精度并占用8字节的内存作为双精度。
【问题讨论】:
-
因为它是
int。z将不会转换为double。 -
您的
printf格式也不正确。它应该是%zu,因为sizeof的类型是size_t,并且应该在末尾包含\n。
标签: c