在C语言中,竖杠符号(|)表示按位或操作符。当应用两个操作数时,它会对两个操作数的每个对应位进行逻辑或操作。对于每个位,如果其中一个操作数对应位上的值为1,则结果对应位上的值也为1。例如:
```
int a = 5; // 二进制表示为: 0000 0101
int b = 3; // 二进制表示为: 0000 0011
int c = a | b; // 二进制表示为: 0000 0111,即十进制为7
```
在上面的例子中,a和b的按位或运算结果c为7,因为每个二进制位上的对应值都按照逻辑或的规则进行了计算。
1、两道竖杠就是逻辑或 ||。如果一个操作数或多个操作数为 true,则逻辑或运算符返回布尔值 true;只有全部操作数为false,结果才是 false。
2、如果任一操作数或两个操作数为true,则逻辑“或”运算符 (||) 返回布尔值true;否则返回false。操作数在计算之前隐式转换为类型bool,结果的类型为bool。逻辑“或”具有从左向右的关联性。or运算符是||的等效文本。
逻辑“或”运算符的操作数不需要是同一类型,但是它们必须是整型或指针类型。操作数通常为关系或相等表达式。
第一个操作数将完全计算,并且在继续计算逻辑“或”表达式之前将完成所有副作用。
仅当第一个操作数的计算结果为 false (0) 时计算第二个操作数。
在逻辑“或”表达式为 true 时,这将消除对第二个操作数的不必要的计算。