C语言基础学习笔记——运算符和表达式

表达式:由运算符、操作数和标点符号组成的序列。
    注:①可以是一个单独的变量或常量;
      ②表达式是有值的(运算结果:数学值、逻辑值);
      ③可以为表达式添加括号,称为表达式的嵌套使用,但只能是小括号()。

运算符的分类
赋值运算符:程序中为变量赋值,需用到赋值运算符“=”。用=连接的式子,称为赋值表达式,一般形式为:变量=表达式(如:a = 3)。

算数运算符:包括+、-、*、/、%(求余)。/ 操作对于整型为除法取整运算,如5 / 2 等于2;对于浮点数则与通常意义相同,如5.0 / 2.0 等于2.5。% 为取余(取模)运算符,是左边的数除以右边的数的余数(两侧都是整型),如5 % 2 等于1。

自增运算符:int a; ++a相当于a = a + 1; a++同样相当于a = a + 1。区别在于++a是a先加1,再参与其他运算;a++是a先参与其他运算,再执行a = a + 1。

自减运算符:同自增运算符一样。int a; --a相当于a = a - 1; a–同样相当于a = a - 1。区别在于–a是a先减1,再参与其他运算;a–是a先参与其他运算,再执行a = a - 1。
注:自增自减运算符只能用于整型变量以及字符型变量,不能用于常量或运算表达式。

复合赋值运算符:在赋值运算符前面加上其他运算符,如+=,-=,*=,/=,%=。a += b,相当于a = a + b。

条件运算符(三目运算符):一般形式为:  
      表达式1?表达式2:表达式3
运算规则:先运算表达式1,若为真则结果为表达式2的值,否则为表达式3的值。 如max = (a > b) ? a : b; 执行结果就是将a、b之间的较大值赋值给max。

关系运算符:实际上就是比较运算符,比较两个量的大小,用来决定程序的下一步工作。包括:>、<、<=、>=、==、!=(不等于)。关系运算符是一个整体,中间不能有空格,也不能颠倒顺序。
注:对于浮点型,只能比较大小,不能比较是否相等(需要确定小数位数),关系运算符的返回类型是bool(布尔)类型,结果不是0就是1(表达式值为真返回1,就表达式值为假返回0),通常用于条件判断时。

逻辑运算符:包括:&&(逻辑与)、||(逻辑或)、!(逻辑非)。
一般形式为:表达式1 逻辑运算符 表达式2(如:a < b && a > c)。
逻辑与运算符(&&):当左右两边的表达式的值都为真时,结果才为真。
逻辑非运算符(||):两个表达式只要有一个为真时,结果就为真,两个表达式都为假时,结果才为假。
逻辑非运算符(!):表达式为真时,结果为假;表达式为假时,结果为真。如(!(15>10))结果为0。(逻辑非的优先级高于算数运算符)。
注:短路运算:当多个表达式用&&连接时,若第一个表达式的值为假,则整个表达式的结果为假,后面的表达式不用再作运算;当多个表达式用||连接时,若第一个表达式的值为真时,则整个表达式的结果为真,后面的表达式不用再计算。
如:

int a = 1;
int b = 2;
a > b && ++a > b;

结果为逻辑0,经短路运算后,后面的表达式不会再进行计算,所以++a不会再计算,a的值仍为1。

逗号运算符(又称顺序求职运算符):可以把表达式连接起来,整个逗号表达式的值为最后一个表达式的值。一般形式为:
表达式1,表达式2,表达式3…表达式n;(结果为表达式n的值)。
逗号运算符的优先级是所有运算符中最低的。

特殊运算符():()小括号,优先级最高。

sizeof运算符:以字节形式给出其操作数的存储大小。
1)用于数据类型:sizeof( int ) = 4;数据类型必须用小括号括起来。
2)用于变量:sizeof( a );其结果为变量a所占内存大小
注:sizeof操作符不能用于函数类型、不完全类型或位字段(不完全类型指具有未知存储大小的数据类型,如void);sizeof可直接参与运算,其结果为整数。(如 int i = 10; i * sizeof( int ) = 40)。

运算符的优先级由高到低依次为:
特殊运算符(括号、逻辑非) > 算数运算符 > 关系运算符 > 位运算符 > 逻辑运算符 > 条件运算符 > 赋值运算符 > 逗号运算符

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值