相关疑难解决方法(0)

是否要求短路逻辑运营商?和评估顺序?

ANSI标准是否要求逻辑运算符在C或C++中被短路?

我很困惑,因为我记得K&R的书说你的代码不应该依赖于这些操作被短路,因为它们可能没有.有人可以指出标准中的哪个位置逻辑操作始终是短路的吗?我最感兴趣的是C++,C的答案也很棒.

我还记得读(不记得在哪里)评估顺序没有严格定义,所以你的代码不应该依赖或假设表达式中的函数将按特定的顺序执行:在语句的末尾所有引用的函数将被调用,但编译器可以自由选择最有效的顺序.

标准是否表明该表达式的评估顺序?

if( functionA() && functionB() && functionC() ) cout<<"Hello world";
Run Code Online (Sandbox Code Playgroud)

c c++ operator-precedence short-circuiting logical-operators

137
推荐指数
5
解决办法
3万
查看次数

在C++中,什么原因导致赋值在控件结构中使用时评估为true或false?

那么有人可以帮助我掌握if(...)或while(...)之类的任务中的所有(或大部分相关)情况吗?

我的意思是:

if(a = b)
Run Code Online (Sandbox Code Playgroud)

要么

while(a = &c)
{
}
Run Code Online (Sandbox Code Playgroud)

等等...

它何时评估为真,何时评估为假?根据作业中使用的类型,这会发生变化吗?什么时候有指针涉及?

谢谢.

c++

10
推荐指数
2
解决办法
7323
查看次数