我理解了“result of”的结果。
int nData = 10;
printf("%d", sizeof(nData + 2.0));
请翻译:
是 "8"
为什么每个结果都是
int nData = 10;
printf("%d", sizeof(nData = 2.0));
printf("%d", sizeof(nData += 2.0));
为什么nData
不是8而是4?为什么sizeof(nData += 2.0)
不能使nData
等于12.0
或12
?
sizeof(double)
与sizeof(int)
- 在您的平台上分别为8
和4
。 - Sander De Dycker%d
不是sizeof()
的正确格式字符串。sizeof()
返回一个size_t
,正确的格式字符串应该是%zd
。根据C标准,7.21.6.1 fprintf函数,第6段: "z指定后面的d、i、o、u、x或X转换说明符适用于size_t
"。 - Andrew Henle