C语言中唯一一个三元运算符,? :,注意,这个运算符是三元运算符,由问号?和冒号两个符号组成,两个符号将空间分成三部分,分别放三个数据,用法为:
条件 ? 条件成立的返回值Y : 条件不成立的返回值N
当条件成立时,表达式返回值Y,条件不成立时,返回值N。举例如下:
#include
int main( )
{
int a,b,c;
scanf("%d %d",&a,&b); //输入两个数
c = a>b ? a : b; //a>b时将a赋值给c,a<=b时将b赋值给c
printf("您输入的数字中较大的数字是%d",c);
getchar( ) ;getchar( ) ; //使程序暂停一下
return 0;
}
一般,? :运算符效率高于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
后置++操作数参与表达式运算,再自身加1j = i++将i的值赋值给j,i再自身加1,执行后j为0,i为1
后置--操作数参与表达式运算,再自身减1j = i--将i的值赋值给j,i再自身减1,执行后j为0,i为-1
通常前置的++和--运算符效率高于后置的++和--运算符。