Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我是<;N+;1和i<;=N不同?_C++_C_For Loop_Comparison - Fatal编程技术网

C++ 我是<;N+;1和i<;=N不同?

C++ 我是<;N+;1和i<;=N不同?,c++,c,for-loop,comparison,C++,C,For Loop,Comparison,我以前知道Isqrtlreturnlong double在这种情况下,您的假设是: i之间没有差异这仅适用于整数值。由于sqrtl返回long double,如果它是分数,那么对于分数,如果您将原始值与分数和+1进行比较,其中一个整数适合: ! 2 <= 1.5 2 < 1.5+1 !2嗯,iOh。。当我将sqrtl(GCD)转换为(long-long)谢谢时,我发现它工作得很好!我对for-loop有一个误解。。我以为它会隐式转换为非浮动类型。。谢谢@Eureuerung:for

我以前知道
I
sqrtl
return
long double
在这种情况下,您的假设是:


i之间没有差异这仅适用于整数值。由于
sqrtl
返回
long double
,如果它是分数,那么对于分数,如果您将原始值与分数和
+1
进行比较,其中一个整数适合:

! 2 <= 1.5
2 < 1.5+1

!2嗯,
iOh。。当我将sqrtl(GCD)转换为(long-long)谢谢时,我发现它工作得很好!我对for-loop有一个误解。。我以为它会隐式转换为非浮动类型。。谢谢@Eureuerung:for循环将比较结果强制转换为
int
bool
。(这就是为什么你不应该问C/C++问题:C和C++有微妙的差别,比如)。@ MsAlter:我认为Eureuerung在谈论比较的右边而不是完整的条件。@ ZBYNEKVYSKOVKSKY-KVR000:for循环可以包含几乎任何表达式作为其条件表达式。子表达式的哪些部分将被强制转换?例如,
for(char*p=…;p&&*p;…)
不是一个不寻常的条件表达式。如果
N==MAX\u INT\u VALUE
N+1
溢出,它们是different@csharpfolk在C++中,这将是<代码> InthMax <代码>,而<代码> STD::NoigCixLime::Max()。溢出使
INT_MAX+1
未定义,因此您无法再对此进行推理,但
N在某些情况下会有所不同。见公认的答案。
! 2 <= 1.5
2 < 1.5+1