逻辑运算符和变量初始化

时间:2015-10-09 17:51:29

标签: c logical-operators

这样的表达背后的概念是什么?

int x;
x=7||6;

3 个答案:

答案 0 :(得分:3)

来自C11草案规范

  

6.5.14逻辑OR运算符

     

||如果任一操作数进行比较,则运算符应为1   不等于0;否则,它产生0.结果的类型为int。

因此在表达式x = 7||6;中,||产生1,因为至少有一个(实际上两个)操作数都不等于0。

答案 1 :(得分:0)

int x;
x=7||6;             // it is true always .

您得到的输出1是由于bool被提升为int。你可以假设 -

true==1

答案 2 :(得分:0)

x = 7 || 6;
x = 7 "or" 6; //or can only apply to booleans
x = true or true; //Auto cast to booleans
x = true;
x = 1; //Auto cast to int

请在课堂上尽量少付一点......