三目运算符详解·

    三目运算符优先级仅高于赋值运算符

成都创新互联始终坚持【策划先行,效果至上】的经营理念,通过多达10多年累计超上千家客户的网站建设总结了一套系统有效的全网推广解决方案,现已广泛运用于各行各业的客户,其中包括:成都门窗定制等企业,备受客户称赞。

?:

语法:

条表 ? 表 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;


当前名称:三目运算符详解·
文章位置:http://scyanting.com/article/ijpcpg.html