[C语言]逻辑与(&&)和逻辑或(||)的特点

逻辑或:

如果任一操作数或两个操作数为true,则逻辑“或”运算符 (||) 返回布尔值true;否则返回false。操作数在计算之前隐式转换为类型bool,结果的类型为bool。两个操作数可以是变量、常量和表达式。逻辑“或”具有从左向右的关联性。 [2]

or运算符是||的等效文本。

逻辑“或”运算符的操作数不需要是同一类型,但是它们必须是整型或指针类型。操作数通常为关系或相等表达式。

第一个操作数将完全计算,并且在继续计算逻辑“或”表达式之前将完成所有副作用。

仅当第一个操作数的计算结果为 false (0) 时计算第二个操作数。在逻辑“或”表达式为 true 时,这将消除对第二个操作数的不必要的计算。

在决定一事物的若干条件中,只要有一个条件能满足时,结果就会出现;只有当所有条件都不满足是,结果才不出现,这种因果关系就称为“逻辑或”。

逻辑与:

“&&” "·"表示与 (逻辑与)是逻辑运算符

“逻辑与”相当于生活中说的“并且”,就是两个条件都同时成立的情况下“逻辑与”的运算结果才为“真”。

逻辑运算符把各个运算的变量(或常量)连接起来组成一个逻辑表达式

逻辑与,符号为“&&”,只有两个操作数都是真,结果才是真。 逻辑与操作属于短路操作,既如果第一个操作数能够决定结果,那么就不会对第二个操作数求值。对于逻辑与操作而言,如果第一个操作数是假,则无论第二个操作数是什么值,结果都不可能是真,相当于短路了右边。

例1(逻辑或):

#include <stdio.h>
int main() {
    int i = 0, a = 0, b = 2, c = 3, d = 4;
    i=a++||++b||d++;
    printf("a=%d\nb=%d\nc=%d\nd=%d\n", a, b, c, d);
    return 0;
}

结论:逻辑或(||)从左到右有一个为真(不为0)表达式为真,后边不在计算。

例2(逻辑与):

#include <stdio.h>
int main() {
    int i = 0, a = 0, b = 2, c = 3, d = 4;
    i = a++ && ++b && d++;
    printf("a=%d\nb=%d\nc=%d\nd=%d\n", a, b, c, d);
    return 0;
}

结论:按位与(&&)从左到右有一个为假(0)表达式为假,后边不再计算。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值