三目運算符優先級僅高於賦值運算符
ide
?:spa
語法:it
條表 ? 表 1 :表 2class
運算規則:語法
根據條表的運算規則結果:若條表運算結果爲真,則以表1的運算結果爲表達式的結果,不然用表2的結果爲表達式的結果語言
char sex;di
scanf("%c", &sex);view
printf(sex == 'm' ? "先生\n":"女士\n");vi
一行找到最大值:採用分而治之的原則co
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;