C++ C++;输出流中的运算符优先级 inta=1,b=2; int c=a*b+b==0;//c=0 cout
因为这些操作符的属性是C++ C++;输出流中的运算符优先级 inta=1,b=2; int c=a*b+b==0;//c=0 cout,c++,cout,evaluation,operator-precedence,C++,Cout,Evaluation,Operator Precedence,因为这些操作符的属性是操作符*操作符+操作符已经解释了代码的行为 我想回应OP说,编写易于理解的代码会更好 如果您不能清楚地看到表达式的逻辑,请简化它。使用括号使它们更容易理解。除非您正在为一个模糊代码竞赛编写代码,否则没有理由编写这样的代码 改变那些路线 int a = 1, b = 2; int c = a*b + b==0; // c = 0 cout << a*b + b==0; // outputs 4 到 或 取决于您的意图。因为任何关于C++的好的书或文档都包含优先级
操作符*
操作符+
操作符已经解释了代码的行为
我想回应OP说,编写易于理解的代码会更好
如果您不能清楚地看到表达式的逻辑,请简化它。使用括号使它们更容易理解。除非您正在为一个模糊代码竞赛编写代码,否则没有理由编写这样的代码
改变那些路线
int a = 1, b = 2;
int c = a*b + b==0; // c = 0
cout << a*b + b==0; // outputs 4
到
或
取决于您的意图。
因为任何关于C++的好的书或文档都包含优先级的运算符列表。
int c = a*b + b==0; // c = 0
int c = (a*b) + (b==0);
int c = ((a*b + b) == 0);