找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1414|回复: 4
打印 上一主题 下一主题
收起左侧

C语言问题if( mm[25]&&mm[26]==1)和if( mm[25]&mm[26]==1)有什么区别

[复制链接]
跳转到指定楼层
楼主
ID:709761 发表于 2022-11-9 13:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 李冬 于 2022-11-10 08:11 编辑

if( mm[25]&&mm[26]==1)和if( mm[25]&mm[26]==1)有什么区别


和 if( mm[25]==1&&mm[26]==1, if( mm[25]&mm[26]==1)哪个判断比较好
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:94031 发表于 2022-11-10 18:36 | 只看该作者
if( mm[25]==1&&mm[26]==1)比较好,低版本编译器可以处理。if( mm[25]&mm[26]==1)要高版本编译器。
回复

使用道具 举报

板凳
ID:1046382 发表于 2022-11-11 04:30 | 只看该作者
      这两种是有区别的,运算符性质不同:
      &是一个位运算符,是将两个二进制的数逐位相与,结果是相与之后的结果。if( mm[25]&mm[26]==1)中只有 mm[25]的二进制值的末位为1,且mm[26]==1的结果为真,条件才是真,否则为假;
      &&是一个逻辑运算符,只有两个表达式同时为真才为真,有一个为假则为假,具有短路性质,即第一个表达式为假时就判别为假,并结束后面表达式运行。if( mm[25]&&mm[26]==1)中, mm[25]为非0时,再判别mm[26]==1是否为真,若为真则条件为真,否则为假;若mm[25]为0,则直接判断条件为假,不会再去判别mm[26]==1是否为真,(如if( mm[25]&&mm[26]=1)中mm[26]=1的赋值语句也不会执行)。

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:77589 发表于 2022-11-11 10:03 | 只看该作者
本帖最后由 Longan.Wang 于 2022-11-11 10:08 编辑

大爷if( mm[25]==1&&mm[26]==1)和if( mm[25]&mm[26]==1)都不是相同的条件,怎么可能没有区别。
if( mm[25]==1&&mm[26]==1)表示mm[25]和mm[26]必须同时为1才能满足条件;
if( mm[25]&mm[26]==1)表示,如果mm[26]=1,只要mm[25]的最低位为1,其余位随便都能满足条件。
你说这能一样吗????????
回复

使用道具 举报

5#
ID:94031 发表于 2022-11-11 14:17 | 只看该作者
区别:
if( mm[25]&&mm[26]==1) 要判断 mm[25]和mm[26] 是否都为1。
if( mm[25]&mm[26]==1)  要判断 mm[25]和mm[26] 位与后结果是否 为1。
二者判断方法不一样无所谓好坏。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表