if块中的加法是什么意思? if-Question有什么作用?
我已经尝试使用整数代码,但是它向我展示了if块每次都是正确的
¯\_(ツ)_/¯
。
答案 0 :(得分:4)
if块中的加法是什么意思?
它的含义与其他任何地方完全相同,并且取决于f(a,751)
等具有什么类型的表达式。因此,您的if
语句在逻辑上等于:
auto tmp = f(a,751) + f(b, -751) -f(c, a);
if( tmp ) ...
通过这种方式,您可能更容易理解+
在if
内部没有特殊含义
if-Question有什么比较?
C ++具有特殊的规则,如何将某些类型转换为bool
期望的类型if
。例如,对于int
,任何非零值都将转换为true
,否则将转换为false
。不知道返回什么f()
,就不可能说更多。
您应该了解a < b
并没有什么特别之处,它只是一个返回bool
的表达式。 if
仅评估括号内的内容,然后尝试将其转换为bool
。如果可以使用,则无法编译。
答案 1 :(得分:2)
在所示的代码中,对整个表达式f(a,751) + f(b, -751) - f(c, a)
进行求值,如果它将返回可转换为bool的值(例如,整数),则将值转换为{{1} }。对于整数,则表示该值是否为非0。
缺少true
函数的定义,我不再赘述。
答案 2 :(得分:2)
加法就是加法。假设f()返回一个整数,则if语句只是在评估一个整数条件。在这种情况下,任何非零数字都将返回true。