C语言之逻辑运算符与赋值运算符

本文介绍了C语言中的逻辑运算符,包括与(&&)、或(||)、非(!),并提供了示例代码展示其工作原理。同时,详细讲解了赋值运算符‘=’的使用规则,强调了赋值时的注意事项,如赋值方向、变量定义等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

逻辑运算符:
与:&&     1&&1     都真为真,否则为假
或:||       1||2           任意一方为真则真,否则为假
非:!      !1           对原条件取反,原条件为假,则真,否则为假 

在C语言中,0表示逻辑值假,1(非0)表示逻辑值真,或者大于1的也可以。

代码如下:

逻辑与:&&

#include <stdio.h>
void main()
{
	int num1=0 , num2=1;//定义两个变量
	//在C语言中,0表示逻辑值假,1(非0)表示逻辑值真,或者大于1的也可以。
	printf("num1&&num2的结果为:%d\n",num1&&num2);//num1:0为假,num2:1为真  有一方为假,所以结果为假,输出0
}

输出如下:

 逻辑或:||

#include <stdio.h>
void main()
{
	int num1=0 , num2=1;//定义两个变量
	//在C语言中,0表示逻辑值假,1(非0)表示逻辑值真,或者大于1的也可以。
	printf("num1&&num2的结果为:%d\n",num1&&num2);//num1:0为假,num2:1为真  有一方为假,所以结果为假,输出0
	printf("num||num2的结果为:%d\n",num1||num2);//num1: 0为假,num2:1为真 有一方为真则真 所以输出1

}

输出结果如下:

 逻辑非||:

#include <stdio.h>
void main()
{
	int num1=0 , num2=1;//定义两个变量
	//在C语言中,0表示逻辑值假,1(非0)表示逻辑值真,或者大于1的也可以。
	printf("num1&&num2的结果为:%d\n",num1&&num2);//num1:0为假,num2:1为真  有一方为假,所以结果为假,输出0
	printf("num||num2的结果为:%d\n",num1||num2);//num1: 0为假,num2:1为真 有一方为真则真 所以输出1
	printf("!num1的结果为:%d\n",!num1);//num1: 0取反为1 所以为真,输出1
	printf("!num2的结果为:%d\n",!num2);//num1: 1取反为0 所以为真,输出0
}

输出结果如下:

 赋值运算符:

符号:“=”
作用:是将右侧的表达式的值赋给左边的变量
运算方向:自右向左
注意:
1.赋值号“变量=”,左边只能是变量
2.不能给未定义的变量赋值
3.变量未明确赋值不能参与运算(没有声明变量的也不能参与运算)

代码如下:

#include <stdio.h>
void main()
{
	int num1=5 , num2=2;//定义两个变量
	num3=1;//这个变量没有被定义

}

因为这个num3没有定义,所以它会显示红色:

 num3下面有红色波浪线

### C语言中的逻辑运算符赋值操作 #### 逻辑运算符简介 在C语言中,逻辑运算符用于组合多个条件表达式。主要的逻辑运算符包括`&&`(逻辑),`||`(逻辑)以及`!`(逻辑非)[^1]。 #### 运算符优先级 不同类型的运算符具有不同的优先级,在表达式求值过程中会按照特定顺序处理这些运算符。对于逻辑运算符而言,其优先级低于单目运算符而高于赋值运算符;具体来说就是先执行前置增量(`++`)、减量(`--`)这样的单目运算再做逻辑判断最后才是赋值动作[^2][^4]。 #### 短路行为 值得注意的是,C语言支持逻辑运算符的短路求值机制。这意味着如果第一个操作数足以决定最终结果,则不会继续评估后续的操作数。例如,在`A && B`的情况下,只要`A`为假则不再检查`B`;同样地,在`A || B`里边一旦`A`成立就不必关心`B`的状态了[^3]。 #### 结合示例说明 下面通过一段简单的代码来展示如何在一个语句内同时运用逻辑运算符赋值: ```c #include <stdio.h> int main() { int a = 0; int b = 5; // 此处涉及到了逻辑非(!), 前置自增(++), 后置自减(--), 逻辑(||), 逻辑(&&), 和赋值(=) char c = !a || ++b && a--; printf("After expression evaluation:\n"); printf("Value of 'a': %d\n", a); printf("Value of 'b': %d\n", b); printf("Result stored in 'c' (as integer): %d\n", c); return 0; } ``` 这段程序展示了复杂条件下变量之间相互作用的方式。这里的关键在于理解各个运算符之间的相对优先级以及它们是如何影响整体表达式的解析过程的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

看书会睡觉

谢谢您的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值