首页 > 其他分享 >C语言逻辑运算符

C语言逻辑运算符

时间:2022-11-08 23:24:33浏览次数:45  
标签:逻辑 左边 右边 C语言 运算符 && true 表达式

在C语言中,逻辑运算符有&&、||、!
&&表示“与”的意思,需要两端的表达式的值都为true,该式的值才为true。
||表示“或”的意思,两端的表达式的值只要有一端为true,该式的值就为true。
!表示“非”的意思,将该式的真值换成相反的真值,即false和true互换。

但是在C99里有这样的一个名为“短路”的特性

使用&&时,如果左边false则右边不会执行
使用||时,如果左边true则右边不会执行

&&运算符,举例:

#include<stdio.h>
int main()
{
	int a=-1,b=0;
	if(a++&&b++)
		printf("%d %d",b,a);
	if(++b&&++a)
		printf("%d %d",a,b);
	return 0;
}

想想程序的输出结果是什么?

答案是:1 2

程序的流程是:先定义变量a=-1,b=0,然后进入第一个if()判断,&&左边的值是-1,右边的值为0,所以此if()下的语句不执行,但是由于&&左侧为true,所以&&右侧的b++也会得到执行,此行结束时,a的值为0,b的值为1。
第二次if(),左边的值为2,右边的值为1,所以`if()``下的语句得到执行,输出a的值1,b的值2。

||运算符同理,如果左边的表达式的值为true,则右边的表达式不会执行。

标签:逻辑,左边,右边,C语言,运算符,&&,true,表达式
From: https://www.cnblogs.com/Syhang/p/16871633.html

相关文章

  • C语言逗号运算符
    在C语言中,逗号运算符虽然不起眼,但也是运算符的一种,而且在所有运算符中,逗号运算符的优先级是最低的。逗号用来连接两个表达式,并以其右边的表达式的值作为它的结果。逗号的......
  • c语言提高学习笔记——03-c提高10day_数据结构
    在学习c语言提高-数据结构总结了笔记,并分享出来。有问题请及时联系博主:​​Alliswell_WP​​,转载请注明出处。03-c提高10day_数据结构目录:一、队列(Queue)1、队列基本概念2......
  • c语言查漏补缺——Win32环境下动态链接库(DLL)编程原理
    在c语言查漏补缺总结了笔记,并分享出来。有问题请及时联系博主:​​Alliswell_WP​​,转载请注明出处。目录:一、Win32环境下动态链接库(DLL)编程原理1、导出和导入函数的匹配2......
  • 七、八(管理逻辑卷、实施高级存储功能)
    七、管理逻辑卷                                              ......
  • C语言指针
    在C语言中,有两种方式得到一个变量方式一:直接找到变量方式二:间接找到变量。也就是先找到变量的地址,然后再根据地址解析得到该变量。......
  • C语言输出随机数
    rand()函数#include"stdio.h"#include"stdlib.h"#include"time.h"intmain(){ inti,num; srand(time(0)); for(i=0;i<10;i++){ num=rand()%10+1; prin......
  • C基础学习笔记——01-C基础第05天(运算符和流程结构语句)
    在学习C基础总结了笔记,并分享出来。有问题请及时联系博主:​​Alliswell_WP​​,转载请注明出处。01-C基础第05天(运算符和流程结构语句)目录:一、运算符(运算符优先级)二、程序流......
  • 用实例讲清JavaScript中的空合并运算符
    https://javascript.plainenglish.io/the-nullish-coalescing-operator-in-javascript-explained-with-examples-3e056e49a2c2原译|杨小二如今JavaScript具有许多强大的......
  • C语言值传递和指针
    刚开始接触C语言时,可能都会有这样的一个疑问:为什么有时候C语言的函数需要传递一个指针对象?而不是直接传递一个变量?因为需要修改并影响到实参。 我们知道在编程语言中......
  • C语言自创函数
    为什么要采用自创函数?在设计较复杂的程序时,一般采用自顶向下的方法,将问题划分为几个部分,各个部分再进行细化,直到分解为较好解决问题为止。模块化程序设计是指在进行程序......