a?b:c这个是条件表达式,也称三目运算符,表示如果a为真,则表达式值为b,如果a为假,则表达式值为c。
条件表达式语法举例说明如下:
if(a>b) {max=a} ; else {max=b};
可用条件表达式写为
max=(a>b)?a:b;
执行该语句的语义是:如a>b为真,则把a赋予max,否则把b 赋予max。
扩展资料
使用条件表达式的注意点:
1、条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。
因此 max=(a>b)?a:b
可以去掉括号而写为 max=a>b?a:b
2、条件运算符?和:是一对运算符,不能分开单独使用。
3、条件运算符的结合方向是自右至左。
例如: a>b?a:c>d?c:d 应理解为 a>b?a:(c>d?c:d)
三目运算符 <表达式1>?<表达式2>:<表达式3>; "?"运算符的含义是: 先求表达式1的值, 如果为真, 则执行表达式2,并返回表达式2的结果 ; 如果表达式1的值为假, 则执行表达式3 ,并返回表达式3的结果.
例:
int a=2;
int c=3;
int b=(a>c)?2:3;
输出b;
这样的结果是b为3
eg:
int a=1,b=2,z;
z=a>b?a:(a>b?a:b);
cout<<"z:"<
eg:
int a=1,b=2,z;
z=a>b?a:b;//去了括号
cout<<"z:"<
三目运算中执行方向依次为自右向左。
在PHP中运用实例如下:
$ps= $us ? md5($_POST[password].ALL_PS)== $row[password] : FALSE;
a如果是真,就取b的值,如果是假就取c的值
运算符:用于c语言中执行程序代码运算