今天是3.25日是学习C语言的第五节课。
对于每一个运算操作符Peter老师为我们做了一个系统的讲解,包括基本概念,在C语言中的用法和特殊的含义,认识到了它的重要性。
算术操作符 + - * /
1. 取模运算符 % 不能用于float 和 double 类型。
2. 算术运算符采用从左到右的结合规则。
关系运算符和逻辑运算符
关系运算符:> >= < <= 相等性运算符:!= = 逻辑运算符:&& || !
1. 关系运算符优先级比算术运算符低,仅次于它们的是相等性运算符。
2. 逻辑运算符也遵从左向右的结合性。
3. &&:如果两个操作数都不等于0,则结果为1,否则结果为0。
与按位与 &的不同在于从左到右的求值次序:首先计算第一个操作数,如果为0,则整个表达式的值为0;否则计算右操作数,如果为0,整个表达式为零;否则为1。
4. ||:如果该运算符的某个操作数不为0,则结果为一,否则结果为0。
与按位或 | 的不同在于从左到右的求值次序:首先计算第一个操作数,如果不为0,则整个表达式的值为1;否则计算右操作数,如果不为0,整个表达式为1;否则为0.
5. 两个操作数不需要为同一类型,但必须为算数类型或指针,其结果为int.
6. ! :将非0操作数转换为1,将操作数0转换为1.
自增运算符与自减运算符 ++n ++n ——n n— —
1. 前置++ (——)先将n的值递增 (递减)1,然后再使用变量n的值。
2. 后置++ (——)先使用变量n的值,然后再将n的值递增(递减)1。
按位运算符 & | ^ << >> ~
1. 按位与 &:常用于屏蔽某些二进制位,置为0。
2. 按位或 | :常用于将某些二进制位置为1。
3. 按位异或 ^ :当两个操作数的对应位不同时将该位置为1,否则置为0。
4. 移位运算符<< 和 >>用于将运算的左操作数左移或右移,移动位数由右操作数指定(右操作数非负)
5. 左移操作符<<:左边抛弃、右边补0;左移一位相当于对左操作数乘2。
6. 右移操作符>>:右移一位相当于对左操作数除以2.①算术移位:左边用0填充,右边丢弃
②逻辑移位:左边用原该值的符号位填充,右边丢弃。
7. 按位取反 ~:求整数的二进制反码。
赋值运算符 =
赋值表达式的类型是左操作数的类型,其值为赋值操作完成后的值。
条件表达式
expr1 ? expr2 : expr3
首先计算expr1,如果值不等于0(为真),则计算expr2的值,并将该值作为条件表达式的值,否则计算expr3的值,并将该值作为条件表达式的值。expr2与expr3中只能有一个表达式被计算。
逗号运算符
表达式:
赋值表达式
表达式,赋值表达式
由逗号分隔的两个表达式的值求值次序为从左到右,并且左表达式的值被丢弃,右操作数的类型和值就是结果的类型和值。