鱼C论坛

 找回密码
 立即注册
查看: 1487|回复: 0

[见证历程] 【阿发C/C++】6.表达式与运算符

[复制链接]
发表于 2019-3-26 14:32:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 冰封水3 于 2019-3-26 14:41 编辑

6.1 算术表达式

       由算术运算符连接起来的表达式,称为算术表达式。
       算术运算符有5个:+(相加)、-(相减)、*(相乘)、/(相除)、%(取模)。
       其中+、-、*和普通的算术概念一致,对于整型和浮点型都适用。

       对于整数来说,相除是取“倍数”,取模(%)是取“余数”。
       对于浮点数来说,相除后仍是浮点数(保留小数部分),浮点数不能进行取模运算。

       算术运算符组合在一起时,优先顺序为:“*、/、%”优先于“+、-”,也可以用括号小指定结合顺序。
       无论何种场景,使用小括号来指定结合顺序,会增加代码的可读性。

6.2 赋值表达式

#理解赋值运算
       赋值运算在具体操作时,分为两步:
       <1>.计算出等号右侧表达式的值;
       <2>.将值写入到左侧变量对应的内存中。

#赋值与算术运算合并
       +=,说明:a+=b相当于a=a+b
       -=,说明:a-=b相当于a=a-b
       *=,说明:a*=b相当于a=a*b
       /=,说明:a/=b相当于a=a/b
       %=,说明:a%=b相当于a=a%b

# 多个赋值可以串连在一行内:
       a=b=c=10;
       相当于
       (a=(b=(c=10)));

6.3 关系表达式

       关系表达式是用于表示两个数大小关系的式子。
       <,小于
       <=,小于或等于
       >,大于
       >=,大于或等于
       ==,等于
       !=,不等于
       关系表达式的值有两种:1(真)或0(假)。
       C语言中,以非零表示真,以零表示假。

6.4 条件表达式

       条件表达式,也称问号表达式,是由条件运算符构造成的、带判断条件的表达式。
       其一般形式为:
       expr1?expr2:expr3
       说明:
       <1>.当expr1为真时,表达式的值为expr2;
       <2>.当expr1为假时,表达式的值为expr3。
       expr是expression的缩写,意思是“表达式”。

6.5 逻辑表达式

       逻辑运算符包括:!(逻辑非)、&&(逻辑与)、||(逻辑或)。
      
       逻辑非的语法形式为:
       ! expr
       即在表达式之前加一个感叹号,表示对该表达式取非。
      
       逻辑与,表示“并且”的意思,其形式为:
       expr1 && expr2
       判断规则:真同异假。
      
       逻辑或,表示“或者”的意思,其形式为:
       expr1 || expr2
       判断规则:两点表达式中,只要其中一个为真,则整个表达式为真。

6.6 逗号表达式

       逗号表达式是以逗号隔开的一系列表达式,其形式为:
       expr1,expr2,expr3,……,exprN
       运算规则:从左到右依次计算每个子式的值,并把最后一个子式的值作为整个表达式的值。

6.7 自增/自减运算符

       ++是自增运算符,表示对变量加1;
       --是自减运算符,表示对变量减1。
       自增、自减运算符只能用于整型变量,不能用于浮点型变量。
      
       前置时,先执行自增或自减运算,再执行所在行的表达式。
       例:
       int a = 10;
       printf("%d",++a);
       相当于
       int a = 10;
       a += 1;
       printf("%d",a);
      
       后置时,先计算本行的表达式,再执行自增或自减运算。
       例:
       int a = 10;
       printf("%d",a++);
       相当于
       int a = 10;
       printf("%d",a);
       a += 1;

6.9 类型的转换与提升

       每一种数据类型都有其表示范围,从高范围到低范围转换会发生数据损失或截断,而从低范围到高范围不会发生数据损失。
       下面是对几种常见数据类型表示范围的比较:
       char<short<int<double
       float<double
       在算术表达式中,当不同的类型混合运算时,编辑器会根据级别最高的类型先进行提升,把所有的运算数都提升到最高级别,再进行运算,这样做的目的是避免数据丢失。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 21:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表