【发布时间】:2014-09-06 02:26:41
【问题描述】:
我们知道类型会得到提升。例如,如果你写:
int i = 2;
double d = 4.0;
double result = i / d;
。 . .那么int 将被提升为double,从而产生0.5。但是,我无法找到任何关于如果提升和评估顺序冲突会发生什么的信息(这对谷歌来说也非常困难)。例如:
int i = 2;
int j = 4;
double d = 1.0;
double result = d * i / j;
在此示例中,该值取决于促销发生的时间。如果i在除法之前被提升,那么结果将是0.5,但是如果i / j的结果被提升,那么就会发生整数除法,结果是0.0。
发生的事情的结果是否明确?在 C++ 和其他 C 派生语言中是否相同?
【问题讨论】:
-
“如果提升和评估顺序冲突”--您认为它们会如何冲突?
标签: c type-promotion