juliusun.com
第 11/50 节 冥河C语言教程
C语言中唯一一个三元运算符,? :,注意,这个运算符是三元运算符,由问号?和冒号两个符号组成,两个符号将空间分成三部分,分别放三个数据,用法为:
条件 ? 条件成立的返回值Y : 条件不成立的返回值N
当条件成立时,表达式返回值Y,条件不成立时,返回值N。举例如下:
一般,? :运算符效率高于if判断。
再介绍一下运算符+=、-=、*=、/=、%=,意义分别是加后赋值、减后赋值、乘后赋值、除后赋值、取模后赋值,都是二元运算符,把左边的值称为左值,右边的值称为右值。它们作用分别是,左值与右值进行加、减、乘、除、取模运行后,结果再赋值给左值。如 i += 3意义为把i和3相加后的值再赋值给i,相当于i = i + 3。同样i -= 3相当于i = i - 3。总结正如下:
运算符 | 描述 | 举例 | 例子描述 |
---|---|---|---|
+= | 左值与右值相加后结果赋值给左值 | i += 3 | 将i+3的结果赋值给i,作用类似i = i + 3 |
-= | 左值与右值相减后结果赋值给左值 | i -= 3 | 将i-3的结果赋值给i,作用类似i = i - 3 |
*= | 左值与右值相乘后结果赋值给左值 | i *= 3 | 将i * 3的结果赋值给i,作用类似i = i * 3 |
/= | 左值与右值相除后结果赋值给左值 | i /= 3 | 将i / 3的结果赋值给i,作用类似i = i / 3 |
%= | 左值与右值取模后结果赋值给左值 | i %= 3 | 将i % 3的结果赋值给i,作用类似i = i % 3 |
通常,上述几个运算符运算效率较高。
还有四个运算符,分别是前置++运算符,前置--运算符,使用时放在操作数的前面,如++i、--i,后置++运算符、后置--运算符,使用时放在操作数后面,如i++、i--。注意:这四个运算符会改变变量本身的值。表中假设i开始时值为0,说明如下:
运算符 | 描述 | 举例 | 例子描述 |
---|---|---|---|
前置++ | 操作数自身先加1,再参与表达式运算 | j = ++i | 变量i自身加1,再将i赋值给j,执行后j为1,i为1 |
前置-- | 操作数自身先减1,再参与表达式运算 | j = -- i | 变量i自身减1,再将i赋值给j,执行后j为-1,i为-1 |
后置++ | 操作数参与表达式运算,再自身加1 | j = i++ | 将i的值赋值给j,i再自身加1,执行后j为0,i为1 |
后置-- | 操作数参与表达式运算,再自身减1 | j = i-- | 将i的值赋值给j,i再自身减1,执行后j为0,i为-1 |
通常前置的++和--运算符效率高于后置的++和--运算符。