目录
目录
1.双目(算数)操作符
//双目操作符是有2个操作数的操作符。
+和-,*(乘法)
/(除法)
- 除号的两端如果是整数,执⾏的是整数除法,得到的结果也是整数。
例如:
//尽管变量 x 的类型是 float (浮点数),但是 6 / 4 得到的结果是 1.0 ,⽽不是 1.5 。原因就在于 C 语⾔⾥⾯的整数除法是整除,只会返回整数部分,丢弃⼩数部分。
- 如果希望得到浮点数的结果,两个运算数必须⾄少有⼀个浮点数,这时 C 语⾔就会进⾏浮点数除法。
%(求模)
- 运算符 % 表⽰求模运算,即返回两个整数相除的余值。
- 这个运算符只能⽤于整数,不能⽤于浮点数。
- 负数求模的规则是,结果的正负号由第⼀个运算数的正负号决定。
2.赋值操作符:=和复合赋值
在变量创建的时候给⼀个初始值叫初始化,在变量创建好后,再给⼀个值,这叫赋值。
//赋值操作符 = 是⼀个随时可以给变量赋值的操作符。
连续赋值
连续赋值,从右向左依次赋值的。
3.复合赋值符
+=(自增) , -=(自减) , *= , /= , %= , >>= , <<= , &= , |= , ^=
4.单目操作符:++、--、+(正)、-(负)
1)++
前置++
计算⼝诀:先+1,后使用。
后置++
计算⼝诀:先使⽤,后+1。
2)--
前置--
计算⼝诀:先-1,后使⽤。
后置--
计算⼝诀:先使⽤,后-1。
3)+ 和 -
5.强制类型转换
在操作符中还有⼀种特殊的操作符是强制类型转换,语法形式很简单,形式如下:
6.关系操作符
- > ⼤于运算符
- < ⼩于运算符
- >= ⼤于等于运算符
- <= ⼩于等于运算符
- == 相等运算符
- != 不相等运算符
关系表达式常⽤于 if 或 while 结构。
//关系表达式通常返回 0 或 1 ,表示真假。
注意:
- 相等运算符 == 与赋值运算符 = 是两个不⼀样的运算符,不要混淆。
为了防止出现这种错误,有的程序员喜欢将变量写在等号的右边。 if (3 == x) ...
- 多个关系运算符不宜连⽤。
eg:
//a<b是正确的,结果为1,而后运行1<c是正确的。
//应该写 i < j && j < k
7. 条件操作符(三目操作符)
- 条件操作符也叫三⽬操作符,需要接受三个操作数的。eg:
- 计算逻辑是:
- 如果 exp1 为真, exp2 计算,计算的结果是整个表达式的结果;
- 如果 exp1 为假, exp3 计算,计算的结果是整个表达式的结果。
8. 逻辑操作符 :!,&& , ||
逻辑运算符提供逻辑判断功能,⽤于构建更复杂的表达式
注:C语⾔中,⾮0表⽰真,0表⽰假
1)逻辑取反运算符 !
eg:我们有⼀个变量叫 flag ,如果flag为假,要做⼀个什么事情。
//如果 flag 为真, !flag 就是假,如果 flag 为假, !flag 就是真 。所以上⾯的代码的意思就是 flag 为假,执⾏if语句中的代码。
2)与运算符 &&
- 意思:并且。
- && 两边的表达 式都是真的时候,整个表达式才为真。
- 只要有⼀个是假,则整个表达式为假。
3)或运算符 ||
- 意思:或者。
- || 两边的表达式只要有⼀个是真,整个表达式就是真。
- 两边的表达式都为假的时候,才为假。
4)短路
- C语⾔逻辑运算符还有⼀个特点,它总是先对左侧的表达式求值,再对右边的表达式求值,这个顺序是 保证的。
- 如果左边的表达式满⾜逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为“短路”。
- &&操作符:左边操作数的结果是0的时候,右边操作数就不再执⾏。
- || 操作符:左操作数的结果不为0时,就⽆需执⾏右操作数。
- 像这种仅仅根据左操作数的结果就能知道整个表达式的结果,不再对右操作数进⾏计算的运算称为短路求值。
5)优先次序
- 逻辑运算符的优先次序
! → && → || (!为三者中最高)
- 与其他运算符的优先次序