C语言基本教程(二)数据范例、变量和运算符(18)
5.4 Turbo C的非凡运算符
一、"?"运算符
"?"运算符是一个三目运算符, 其一般形式是:
<表达式1>?<表达式2>:<表达式3>;
"?"运算符的寄义是: 先求表达式1的值,假如为真,则求表达式2 的值并把它作为整个表达式的值;假如表达式1的值为假,则求表达式3的值并把它作为整个表达式的值。
譬喻:
main()
{
int x, y;
x=50;
y=x>70?100:0;
}
本例中, y将被赋值0。假如x=80, y将被赋值100。
因此, "?"运算符可以取代某些if-then-else形式的语句。
二、"&"和"*"运算符
"&"运算符是一个返回操纵数地点的单目操纵符。
"*"运算符是对"&"运算符的一个增补, 它返回位于这个地点内的变量值,也是单目操纵符。
譬喻:
main()
{
int i, j, *m;
i=10;
m=&i; /*将变量i的地点赋给m*/
j=*m; /*地点m所指的单位的值赋给j*/
}
上面措施运行后, i=10, m为其对应的内存地点, j的值也为10。
三、","运算符
","运算符用于将多个表达式串在一起, ","运算符的左边总不返回,右边表达式的值才是整个表达式的值。
譬喻:
main()
{
int x, y;
x=50;
y=(x=x-5, x/5);
}
上面措施执行后y值为9, 因为x的初始值为50, 减5后变为45, 45除5为9赋给y。