发布时间:2025-06-24 20:22:13  作者:北方职教升学中心  阅读量:574


// 例如:ret = (1 || (a + b) ); // 这里不会执行 (a + b),因为 1 已经为真//输出printf("逻辑或 的短路结果:%d\n",ret2);// 输出 1return0;}

运行结果:

END

每天都在学习的路上!
On The Way Of Learning

“哇哦😎,我们一起走过了这篇文章的旅程🚀。//前置操作符(++var 或 --var)先改变变量的值,然后返回改变后的值;//后置操作符(var++ 或 var--)先返回变量的原始值,然后改变变量的值。逻辑操作符

    • 4.1、分类
    • 4.2、
      • 逻辑或(两根竖线)(||)

      4.2、如果是,返回1(真),否则返回0(假)。
      操作数通常位于 操作符的 左侧 或 右侧(或两者都是,对于二元操作符而言)。大于 (>)判断左边的值是否大于右边的值。

  • //逻辑反操作符 !//作用:对操作数的逻辑值取反。如果是,返回1(真),否则返回0(假)。

    这些操作符通常用于条件语句(如 if 语句)和循环语句(如 while 或 for 循环)中,以控制程序的流程。分类

  • 2.2、分类

    C语言中的关系操作符包括:

    关系操作符功能 及 返回值
    等于 (==)判断两个值是否相等。#include<stdio.h>intmain(){inta =10;intb =++a;// b 的值为 11,a 的值也变为 11(前置自增)intc =a--;// c 的值为 11,但随后 a 的值变为 10(后置自减)//输出printf("b = %dn",b);printf("c = %dn",c);return0;}

    输出结果

    (3)取地址操作符 &

    //作用:获取变量的内存地址。表达式的值等。举例分析(上代码)
  • 4、-)

    //作用:用于表示数值的正负。#include<stdio.h>intmain(){inta =10;// sizeof 计算 变量或数据类型所占的内存大小 返回值是 大于等于 0的数// %zd 是无符号的占位符(格式控制符) // %u 也是printf("%zd\n",sizeof(a));// 输出 a 所占的字节数,通常为 4(取决于编译器和平台)return0;

    输出结果
    (8)强制类型转换操作符((类型))

    //作用:将操作数强制转换为指定的数据类型。循环控制 以及 位运算 等场景中都有广泛应用

    4.1、
    因此,在这种情况下,C语言编译器会“短路”掉第二个操作数的计算,因为它对最终结果没有影响。如果操作数为真(非0),则结果为假(0);//如果操作数为假(0),则结果为真(1)。分类

      • (1) 对于逻辑与运算符&&
      • (2) 对于逻辑或运算符 ||
  • 5.3、变量、逻辑操作符

    在C语言中,逻辑操作符用于根据布尔值(在C语言中,通常使用 整数 0表示假,非 0 值表示真)的逻辑关系进行运算。如果是,返回1(真),否则返回0(假)。分类

    (1) 对于逻辑与运算符&&

    如果第一个操作数为 假(即 等于 0),那么无论第二个操作数的值是什么,整个逻辑表达式的结果都将是假。

  • 逻辑非(!)对操作数的布尔值进行取反。举例分析(上代码)
  • 3、

    2、操作数(Operands)

    操作数是 操作符作用的对象。

  • 如果第一个操作数为假,则不会计算第二个操作数,因为结果已经确定为假。
    这种特性主要适用于 逻辑与(&&)和逻辑或(||)运算符。举例分析(上代码)
    #include<stdio.h>intmain(){// 短路特性示例inta =0;intb =1;intret1 =0;intret2 =0;// 逻辑与的短路特性ret1 =((a !=0)&&(a +b));// 这里不会执行 a + b ,因为a != 0已经为假//输出printf("逻辑与 的短路结果:%d\n",ret1);// 输出0// 逻辑或的短路特性ret2 =((a ==0)||(a +b));// 这里  (a + b) 不会执行,由于 a == 0为真(即 a != 0为假),// 但 || 只需要一个真值 , 且短路特性只跳过不必要的计算。
    如果第一个操作数为真,则不会计算第二个操作数,因为结果已经确定为真。定义

    在C语言中,逻辑运算符的短路特性是一种优化机制,
    它允许在逻辑表达式求值过程中,一旦能够确定整个表达式的最终结果,就立即停止对剩余部分的计算。你觉得这篇文章对你有帮助吗😜?
    有没有什么特别的感受或者想法💡想要和大家分享呢😏?
    赶紧在评论区留言吧,让我们的思想在这里碰撞出火花🔥💥!”

    如果是,返回1(真),否则返回0(假)。#include<stdio.h>intmain(){//定义一个双精度型 double 变量 paidoublepai =3.14;// P 的值为 3,因为 3.14 被强制转换为整数类型,小数部分被截断intp =(int)pai;//输出printf("p = %dn",p);return0;}

    输出结果

    3、

    5.2、关系操作符

    在C语言中,关系操作符(也称为比较操作符)用于比较两个值,
    并返回一个布尔值(在C语言中通常通过整数 0 或 1表示)。inta =5;intret =!a;// ret 的值为 0,因为 5 为真,取反后为假(0)printf("%d\n",ret);

    输出结果
    (2)前置与后置自增操作符(++) 和 前置与后置自减操作符( - -)

    //作用:使变量的值增加或减少1。举例分析(上代码)
    #include<stdio.h>intmain(){inta =10;intb =20;// 等于 (==)if(a ==b){printf("a等于bn");}else{printf("a不等于bn");}// 不等于 (!=)if(a !=b){printf("a不等于bn");}// 大于 (>)if(a >b){printf("a大于bn");}else{printf("a不大于bn");}// 小于 (<)if(a <b){printf("a小于bn");}// 大于等于 (>=)if(a >=10){printf("a大于等于5n");}// 小于等于 (<=)if(b <=20){printf("b小于等于10n");}return0;}

    4、短路特性(逻辑运算符 &&和 ||)

    5.1、

    不等于 (!=)判断两个值是否不相等。分类
  • 3.2、
  • 3.2、只有当两个操作数都为假(0)时,结果才为假(0)。定义

  • 5.2、如果相等,返回1(真),否则返回0(假)。单目操作符
    • 2.1、分类

      C语言中的逻辑操作符主要包括以下三种:

      逻辑操作符功能 及 返回值短路特性
      逻辑与(&&)只有当两个操作数都为真(非0)时,结果才为真(1)。关系操作符
      • 3.1、
    • 小于等于 (<=)判断左边的值是否小于或等于右边的值。举例分析(上代码)
        • 运行结果:
    • 5、

      这些操作符在 条件判断、// 正号(+)通常可以省略,因为它不改变数值;// 负号(-)则用于将数值变为相反数。

      (2) 对于逻辑或运算符 ||

      如果 第一个操作数为 真(即 非 0),那么无论第二个操作数的值是什么,整个逻辑表达式的结果都将是真。单目操作符

      单目操作符的特点是只有⼀个操作数。如果不相等,返回1(真),否则返回0(假)。// 正确的展示短路特性的写法应该是确保第一个条件为真时不会执行第二个可能导致错误的条件。如果任意一个操作数为假(0),则结果为假(0)。

    • 逻辑或(两根竖线)只要有一个操作数为真(非0),结果就为真(1)。

      C语言中操作符详解中

      • 放在最前面的
      • 1、

        2.1、
        在C语言中,操作数可以是常量、
        因此,在这种情况下,C语言编译器同样会“短路”掉第二个操作数的计算。

      小于 (<)判断左边的值是否小于右边的值。#include<stdio.h>intmain(){intnum =10;inta =+num;// a 的值为 10,正号不改变数值intb =-num;// b 的值为 -10,取相反数//输出printf("a = %dn",a);printf("b = %dn",b);return0;}

      输出结果
      (6)按位取反操作符(~)

      //作用:对操作数的二进制表示进行按位取反(即0变为1,1变为0)。分类
      序号单目操作符 符号解释
      1逻辑反操作符
      2++前置与后置自增操作符
      3- -前置与后置自减操作符
      4&取地址操作符
      5*解引用操作符
      6+正值操作符
      7-负值操作符
      8~按位(二进制位)取反操作符
      9sizeof类型长度计算操作符
      10(类型)强制类型转换操作符

      2.2、#include<stdio.h>intmain(){inta =10;int*pa =&a;// 指针pa 存储了变量 a 的内存地址//输出//%p 是以十六进制数的形式打印地址(内存单元编号)printf("%pn",&a);printf("%pn",pa);return0;}

      输出结果

      (4)解引用操作符(*)

      //作用:通过指针获取其指向的变量的值。操作数(Operands)
    • 2、举例分析(上代码)
      #include<stdio.h>intmain(){intx =5;inty =0;// 逻辑与(&&)if(x >0&&y >0){printf("x和y都大于0n");}else{printf("x或y(或两者)不大于0n");}// 逻辑或(||)if(x >0||y >0){printf("x或y(或两者)大于0n");}// 逻辑非(!)if(!y){printf("y是0(假)n");}else{printf("y不是0(真)n");}return0;}
      运行结果:

      5、点赞加收藏!!!🥳😁😍

      1、短路特性(逻辑运算符 &&和 ||)

      • 5.1、#include<stdio.h>intmain(){inta =0;intret =~a;// 对于 a 的二进制表示(全为0),取反后全为1,即 -1(在补码表示下)printf("%dn",ret);// 输出 -1return0;}
    • 输出结果
      (7)类型长度计算操作符(sizeof)

      //作用:计算变量或数据类型所占的内存大小(以字节为单位)。如果操作数为真(非0),则结果为假(0);如果操作数为假(0),则结果为真(1)。

      3.1、举例分析(上代码)

      (1)逻辑反操作符 !

      补充:

      在C语言中,进行判断时,数字0 表示假,非0 的数字表示真。

      5.3、#include<stdio.h>intmain(){inta =10;int*p =&a;intb =*p;// b 的值为 10,即变量 a 的值//输出printf("b = %dn",b);return0;}

      输出结果
      (5)正负值操作符(+、

      大于等于 (>=)判断左边的值是否大于或等于右边的值。举例分析(上代码)
        • 运行结果:
    • END
    • 放在最前面的

      🎈 🎈 我的CSDN主页:OTWOL的主页,欢迎!!!👋🏼👋🏼
      🎉🎉我的C语言初阶合集:C语言初阶合集,希望能帮到你!!!😍 😍
      👋🏼🎉🎊创作不易,欢迎大家留言、