问C语言中的逻辑运算符 “&&”、“||”、“!”是什么意思?怎么区分?

    答 1 个回答|3172 次阅读
    Coco老师 - 官方公众号:青少儿编程学习网
    擅长:编程教育网站:https://kidscodes.cn/
    隐写术通过隐藏真实消息来传达秘密信息,就像用隐形墨水写的信息。通过使用只改变表示像素颜色的每个二进制数的程序,将信息隐藏在数字图像中;当然,程序可以把隐藏的信息提取出来。

    1、“&&”(与):逻辑与运算符
    或者称为“和”,意思就和高中数学中的“∩”类似,主要强调两个值都满足条件,若想要为True,则必须两个都是True,只要一个不是True,则结果都不为True。例子如下。
             A=0;
             B=0;
             A&&B输出就是0
             A=1;
             B=0;
             A&&B输出就是0
             A=0;
             B=1;
             A&&B输出就是0
             A=1;
             B=1;
             A&&B输出就是1
    2、“||”(或):逻辑或运算符
    或,意思就是或者,意思就和高中数学中的“∪”类似,主要强调的是有没有,只要有为True的,不管是几个,结果都是True。例子如下。
             A=0;
             B=0;
             A||B输出就是0
             A=1;
             B=0;
             A||B输出就是1
             A=0;
             B=1;
             A||B输出就是1
             A=1;
             B=1;
             A||B输出就是1
    3、“!”(非):逻辑非运算符
    “非”,计算机中的非就是对值有相反的意思,!0=1,!1=0,它是单目操作符,也就是说只对他后面的值或表达式有影响。
             A=0;
             !A输出就是1
             A=1;
             !A输出就是0
             A=1;
             B=0;
             !(A&&B)输出就是!(0)=1。
    4、注意事项和简单例子
    这里需要说明一下若B=2,C=-1,在进行逻辑运算符的时候,不管值是多少,只要不是0,我们都把它当为1,也就是我们的眼里只有0或者1。所以这里的B=2,C=-1等价于B=1,C=1。
    这里还要强调一下这三个逻辑运算符的优先级。“!”逻辑非运算符是要优先于“&&”逻辑与运算符 和 “||”逻辑或运算符。
    int  A=0,B=2,C=-1;
    int  D=!A||(B&&C||A);
    这里D等于多少?
    这里的运算符高低排序: ()、!、||和&&等级,等级的话就是按照从左到右的顺序。
    下面我来一步一步简化
    !A||(B&&C||A)
    =!A||(1||A)       //括号里面运算符等级相同,所以从左到右
    =!A||1           //选算括号里面的
    =1||1                         //!优先级高于||
    =1
    所以这里D就为1。

    推荐课程 »更多

      推荐问答

      问

      C语言常量有哪些?

      推荐知识

      Python最适合青少儿进阶学习的编程语言

      Python精选库大全,青少年Python编程学习总结