三目運算符詳解·

    三目運算符優先級僅高於賦值運算符

?:

語法:

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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章