0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言中的短路现象

Q4MP_gh_c472c21 来源:一口Linux 作者:土豆居士 2020-09-29 14:39 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

短路现象1

比如有以下表达式

a&&b&&c

只有a为真(非0)才需要判断b的值;只有a和b都为真,才需要判断c的值。

举例

求最终a、b、c、d的值。

main() { inta,b,c,d; a=0; b=1; c=2; d=a++&&b++&&--c; printf("a=%db=%dc=%dd=%d ",a,b,c,d); }

因为a++是先判断a的值再自加,而a初始值为0, 所以(a++)为假,由短路现象可知&&后面式子b++和--c就都不会执行;对于赋值语句,是先将a的值赋值给d,然后再自加,所以d的值为0,a最终为1。

执行结果:

短路现象2

比如有以下表达式

a||b||c

只要a为真(非0)就不必判断b和c;只有a为假,才需要判断b的值;只有a和b都为假,才有必要判断c的值。

举例

求最终a、b、c、d的值;

main() { inta,b,c,d; a=0; b=1; c=2; d=a++||b++||--c; printf("a=%db=%dc=%dd=%d ",a,b,c,d); }

因为a++是先判断a的值再自加,而a初始值为0, 所以(a++)为假,由短路现象可知,还需要继续判断 || 后面的表达式b++,b++要先判断b的值,b为1,所以b++为真,由短路现象可知,后面的式子--c就不在执行;对于赋值语句,不再是将a的值赋值给d,而是将b先赋值给d然后a和b再自加,所以d的值为1,a最终为1,b最终为2。

执行结果:

-END-

来源 | 一口Linux

作者 | 土豆居士

原文标题:C语言中的短路现象

文章出处:【微信公众号:嵌入式ARM】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    183

    文章

    7642

    浏览量

    144558

原文标题:C语言中的短路现象

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    为什么单片机还在用C语言编程?

    。 而且C语言代码执行效率高,也比较精简,方便我们对代码进行移植,所以在现今的单片机编程语言中C语言才能占据绝对主导地位。
    发表于 11-28 07:37

    C语言的分支结构介绍

    1.简单if语句 C语言中的分支结构语句中的if条件语句。 简单if语句的基本结构如下: 代码语言:javascript if(表达式) { 执行代码块; } 其语义是:如果表达式的值为真,则执行其后的语句,否则不执
    发表于 11-25 07:48

    C语言的常量介绍

    、-13; 实型常量:13.33、-24.4; 字符常量:‘a’、‘M’ 字符串常量:”I love china!” 在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。符号常量在使用之前必须先
    发表于 11-24 07:12

    第4章 C语言基础以及流水灯的实现(4.3 4.4)

    4.3 C语言基本运算符 小学数学学过加、减、乘、除等运算符号以及四则混合运算,而这些运算符号在C语言中也有,但是有些表达方法不一样,并且还有额外的运算符号。在
    的头像 发表于 10-29 15:30 177次阅读

    CAN总线断路、短路及反接故障的现象解析及影响评估

    本文导读在实际运行过程中,CAN总线线路可能因多种因素出现故障,其中断路和短路故障较为常见且影响严重。深入了解这两大类故障的现象及对总线的影响,对于快速定位故障、保障系统稳定运行具有重要意义。掌握
    的头像 发表于 10-15 11:41 1282次阅读
    CAN总线断路、<b class='flag-5'>短路</b>及反接故障的<b class='flag-5'>现象</b>解析及影响评估

    C语言中的内联函数与宏

    C编程中,内联函数和宏都用于避免函数调用的开销并编写可复用的逻辑部分,但它们在工作方式和安全性方面存在显著差异。
    的头像 发表于 07-25 15:10 1706次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言中</b>的内联函数与宏

    从焊接到设计:PCBA短路全链路解决方案

    一站式 PCBA加工 厂家今天为大家讲讲PCBA生产中的短路现象常见原因有哪些?排除PCBA生产中短路现象的方法和步骤。PCBA生产过程中,短路
    的头像 发表于 07-11 09:35 2212次阅读

    关于电动机“相间短路”与“对地短路”的问题

    电动机作为现代工业的核心动力设备,其运行稳定性直接关系到生产效率和设备安全。在电机故障中,“相间短路”和“对地短路”是最常见的两类电气故障,其成因复杂且危害性大。本文将深入分析这两种短路现象
    的头像 发表于 07-01 11:08 2521次阅读

    Windows环境下32位汇编语言中文资料

    电子发烧友网站提供《Windows环境下32位汇编语言中文资料.rar》资料免费下载
    发表于 06-30 15:14 0次下载

    深入理解C语言C语言循环控制

    改变程序的执行流程,使代码更加灵活和可控。本文将详细介绍这些语句的作用及其应用场景,并通过示例代码进行说明。Part.1break语句C语言中break语句有两种
    的头像 发表于 04-29 18:49 1728次阅读
    深入理解<b class='flag-5'>C</b><b class='flag-5'>语言</b>:<b class='flag-5'>C</b><b class='flag-5'>语言</b>循环控制

    AD5764芯片内部短路是正常的现象吗?

    我在tb上买了一颗芯片,用万用表短路检测发现5号引脚和3号引脚、5号引脚和21号引脚都是短路的。我焊接到板子后上电,电源启动了短路保护,电压上不去,我断电后重新检测,发现GND和AVSS之间也
    发表于 04-15 06:37

    技术干货驿站 ▏深入理解C语言:嵌套循环与循环控制的底层原理

    大家好!在上一节中,我们学习了C语言中的基本循环语句,如for、while和do...while循环。今天,我们将进一步探讨嵌套循环和循环控制,这些技巧可以帮助我们实现更复杂的逻辑操作。无论是处理
    的头像 发表于 02-21 18:26 1036次阅读
    技术干货驿站  ▏深入理解<b class='flag-5'>C</b><b class='flag-5'>语言</b>:嵌套循环与循环控制的底层原理

    EE-62:在C语言中访问短字内存

    电子发烧友网站提供《EE-62:在C语言中访问短字内存.pdf》资料免费下载
    发表于 01-07 14:02 0次下载
    EE-62:在<b class='flag-5'>C</b><b class='flag-5'>语言中</b>访问短字内存

    EE-128:C语言中的DSP:从C调用汇编类成员函数

    电子发烧友网站提供《EE-128:C语言中的DSP:从C调用汇编类成员函数.pdf》资料免费下载
    发表于 01-07 13:48 0次下载
    EE-128:<b class='flag-5'>C</b><b class='flag-5'>语言中</b>的DSP:从<b class='flag-5'>C</b>调用汇编类成员函数

    深入理解C语言:循环语句的应用与优化技巧

    能让你的代码更加简洁明了,还能显著提升程序执行效率。本文将详细介绍C语言中的三种常见循环结构——while循环、for循环和do...while循环,带你深入理解它
    的头像 发表于 12-07 01:11 1059次阅读
    深入理解<b class='flag-5'>C</b><b class='flag-5'>语言</b>:循环语句的应用与优化技巧