(1)
if(a > b){
max = a;
}else{
max = b;
}
max = (a > b) ? a : b; //无论a>b是否满足,都向同一个变量赋值
条件运算符优先于赋值运算符,所以先求解条件表达式,再将它的值赋值给max
(2)
(a > b) ? printf("%d\n", a) : printf("%d\n", b); //注意此处表达式后面没有;
(a > b) ? (a = 100) : (b = 200);
表达式2和表达式3不一定是数值表达式,还可以是赋值表达式或函数表达式(a > b) ? a=100, printf("%d\n", a) : b = 200, printf("%d\n", b); 出错了
#include<stdio.h>
void main(void){
int a = 1;
int b = 2;
int max;
/*
if(a > b){
max = a;
}else{
max = b;
}
*/
max = (a > b) ? a : b;
printf("max为:%d\n", max);
(a > b) ? printf("%d\n", a) : printf("%d\n", b);
(a > b) ? (a = 100) : (b = 200);
printf("a = %d, b = %d\n", a, b);
a = 1;
b = 2;
(a > b) ? a=100, printf("%d\n", a) : b = 200, printf("%d\n", b);
}