C语言:运算表达式

目录

一:赋值运算符与赋值表达式

二:逗号运算符和逗号运算符

三:关系运算符和关系表达式

四:逻辑运算符和逻辑表达式

五:条件运算符和条件表达式

 六:scanf错误解决

七:总结


一:赋值运算符与赋值表达式

变量=表达式

特点:自右向左

a=b=c=0
"""
作用是先把0赋给 c,再赋给 b,最后赋给 a。

这条语句是正确的,这是因为既然赋值是运算符,那么多个赋值就可以串联在一起。
运算符“=”是右结合的,即“自右向左”进行运算,所以上述赋值表达式等价于:
a=(b=(c=0));
"""

二:逗号运算符和逗号运算符

eg: 1.逗号表达式从   左到了右

      2.逗号运算符在全部运算符里优先级最低

a=3,b=2
c=(a+b,a-b);
/*依次计算表达式 a+b 和 a-b 的值,先将a+b值赋给c,在将 a-b的值赋给变量c,所以c=1
#逗号运算符在全部运算符里优先级最低,因此最好将整个逗号表达式用圆括号括起来,否则意义可能会不同。例如:
a=3,b=2
c=a+b,a-b   #c的值为 5
#逗号运算符结合律为自左向右。因此如果前后表达式用到相同的变量,
# 则前面表达式中变量值如果发生了变化,将会影响后面的表达式。例如:
a=2
x=(a*=3,a+12);   #/*x 的值为 18,先计算 aa*3 等于 6,然后再计算 a12 等于18*/

三:关系运算符和关系表达式

序号符号功能优先级
1>大于优先级相同(高)
2>=大于等于
3<小于
4<=小于等于
5==等于
6!=不等于优先级相同(低)

特点:1  从左到右

        2  算数运算符>关系运算符>赋值运算符

"""
算术表达式:+,-,*,/,%,++,--;
在表达式中使用算术运算符,则将表达式称为算术表达式,
算术表达式的计算根据运算符的优先级从高到低依次执行。
算术运算符的优先级和基本四则运算法则一致,先乘除后加减,模运算符与乘除同级。
对于一个运算量两侧同优先级的运算符,按结合律方向进行。算术运算符的结合律皆为左结合性,

自左向右
"""
"""
在C语言的逻辑运算中,以“1”代表“真”,以“0”代表“假”。
若a=1,b=1,c=2,则:关系表达式 a>b 的值为“假”,表达式的值为 0;
关系表达式 a=b 的值为“真”,表达式的值为 1;
关系表达式 a<=b+c 的值为“真”,
因为 b+c 的值为 3,所以 a<=3 的值为“真”,表达式的值为 1;

关系表达式 a=c>b 的值为“真”,因为c>b 的值为 1,等于 a 的值,所以表达式的值为真,为1;
关系表达式 a=b>c的值为“假”,因为 b>c 的值为 0,所以赋值后 a 的值为 0,整个表达式的值也为0。
"""

"""
要注意 C语言中的关系运算与数学领域中的比较运算是有区别的,
例如:若a=1,b=2,c=3,则关系表达式c<a<b 的值为“真”,
在c语言语言中:算数运算符从左到右,先计算c<a为假,所有变为0,然后在0<b为真
"""

四:逻辑运算符和逻辑表达式

运算符意思
&&和;相当于python中的and
||或;相当于python中的or
!非;相当于python中的!

特点:   1:   三种运算符的优先级由高到低依次为:!>&&>||     非或和

           2:  !(非)>算术运算符>关系运算符一>&&>|| >赋值运算符

            3:&&,||从左到右;     !从右到左

"""
a>c&&a<b等效于(a>c)&&(a<b)
a==b||x>y 等效于(a==b)||(x>y)
a<b||!a     等效于(a<b)||(!a)
a>c&&a<b+c     等效于(a>c)&&(a<(b+c))
2<3&&6>3>!0        等效于(2<3)&&(6>(3-!0))

"""

五:条件运算符和条件表达式

"""

表达式1?表达式 2:表达式3
条件表达式的执行过程是:若表达式1为真,则条件表达式的值等于表达式 2的值,否则为3的值
"""

特点:1: !(非)>算术运算符>关系运算符一>&&>|| >条件运算符>赋值运算符>逗号运算符

          2  :条件运算符的结合性为从右到左,当有条件运算符嵌套时,按照从右到左的顺

"""
a=1;b=2
a<b?(c=3):a>b?(c=4):(c=5) 该表达式的值为 3;
变量 c的值也为 3。首先计算表达式 a>b?(c-4):(c=5),因为 
a>b为假,所以这一条件表达式的结果为 5,此时 c=5; 接着计算
 a<b?(c=3):5,因为 a<b 为真所以这一条件表达式的结果为 3,
 此时 c=3。
 
条件表达式中表达式 1 一般是关系表达式,表达式
  2 和表达式 3 不仅可以是数值表达式,还可以是赋值表达式或函数
  表达式。例如:a>b?printf("d",a):printf("%d",b)

"""

六:格式字符

 六:scanf错误解决

在vs中可能会出现scanf报错,加上一句代码即可

#define _CRT_SECURE_NO_WARNINGS 1

七:总结

只有在:赋值运算   ,! ,   条件运算符的结合性为从右到左,当有条件运算符嵌套时,按照从右到左的顺从右到左   为从右到左;   剩下的都是从左到右

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值