三目运算符优先级仅高于赋值运算符
?:
语法:
条表 ? 表 1 :表 2
运算规则:
根据条表的运算规则结果:若条表运算结果为真,则以表1的运算结果为表达式的结果,否则用表2的结果为表达式的结果
char sex;
scanf("%c", &sex);
printf(sex == 'm' ? "先生\n":"女士\n");
一行找到最大值:采用分而治之的原则
int a, b, c, d;
scanf("%d%d%d",a, &b, &c);
d = (a>b?a:b)>c ? (a>b?a:b):c;
将a,b,c,d中最大数赋值给d:
d = ((a > b ? a : b) > c ? (a > b ? a : b) : c) > d ?((a > b ? a : b) > c ? (a > b ? a : b) : c) : d;
x - y ? 3 : -3//若 x == y 则为假,不成立,则x - y的值为 -3
要求写出判断X不能被3整除且不能被7整除的条表:
x%3 && x%7
滞后自增在条表中的特殊表现:
C语言对于滞后自增在条表中的处理是先用没有自增前的数字参加判断,然后立刻自增,然后参加其他运算
例如:
int i = 1, j;
j = i-- ? i*2 : i+10;
printf("%d %d\n", i, j);
输出的值为 0 0
解释:先用1进行判断,发现是真,则i*2是表达式的值,执行i*2之前i--得到i=0,则表达式的值为0;
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。