C语言:&&和&、||和|有什么区别

C语言:&&和&、||和|有什么区别

C语言:&&和&、||和|有什么区别

2024-10-15

10661

版权

版权声明:

本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《

阿里云开发者社区用户服务协议》和

《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写

侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

本文涉及的产品

RDS MySQL Serverless 基础系列,0.5-2RCU 50GB

推荐场景:

学生管理系统数据库设计

搭建个人博客

Redis 开源版,标准版 2GB

推荐场景:

搭建游戏排行榜

云数据库 Tair(兼容Redis),内存型 2GB

推荐场景:

通过缓存加速数据库访问

简介:

在C语言中,&&和||是逻辑运算符,分别表示逻辑与(AND)和逻辑或(OR),它们用于连接两个布尔表达式,只有当两边都为真时&&返回真,||在至少一边为真时返回真;&和|是位运算符,对应地进行位级的与、或操作,它们对操作数的二进制位进行逐位处理。&&和||具有短路特性,而&和|没有。

在 C 语言中,“&&”与“&”、“||”与“|”主要有以下区别:

一、逻辑运算符“&&”和“||”

“&&”是逻辑与运算符。

当且仅当两个操作数都为真时,整个表达式的结果为真。

例如:int a = 5, b = 7; if (a > 0 && b > 0) { /* 执行某些操作 */ },在这个例子中,只有当a大于 0 并且b也大于 0 时,条件判断才为真,才会执行if语句块中的代码。

逻辑与运算符具有短路特性,即如果第一个操作数为假,就不会再判断第二个操作数,直接得出整个表达式为假的结果。

“||”是逻辑或运算符。

只要两个操作数中有一个为真,整个表达式的结果就为真。

例如:int c = -2, d = 0; if (c > 0 || d > 0) { /* 执行某些操作 */ },这里只要c或者d中有一个大于 0,条件判断就为真,就会执行if语句块中的代码。

逻辑或运算符也具有短路特性,即如果第一个操作数为真,就不会再判断第二个操作数,直接得出整个表达式为真的结果。

二、位运算符“&”和“|”

“&”是按位与运算符。

对两个操作数的每一位进行与运算。即只有当两个对应位都为 1 时,结果位才为 1,否则为 0。

例如:int e = 5; // 二进制为 0101,int f = 3; // 二进制为 0011,int g = e & f;,则g的值为 1(二进制为 0001)。

按位与运算符不具有短路特性,会对两个操作数的每一位都进行计算。

“|”是按位或运算符。

对两个操作数的每一位进行或运算。即只要两个对应位中有一个为 1,结果位就为 1,只有当两个对应位都为 0 时,结果位才为 0。

例如:int h = 5; // 二进制为 0101,int i = 3; // 二进制为 0011,int j = h | i;,则j的值为 7(二进制为 0111)。

按位或运算符同样不具有短路特性,会对两个操作数的每一位都进行计算。

🎈 相关推荐

怎样查看本机MAC地址?3分钟掌握所有系统查询方法!
古风非遗民俗传统文化节活动策划方案专题-70例
beat365官方网站正规

古风非遗民俗传统文化节活动策划方案专题-70例

📅 07-06 👀 7801
老照片-1986世界杯决赛 马拉多纳亲吻大力神杯