回覆列表
-
1 # pietr49411
-
2 # 使用者1856473604127
條件表示式:
表示式1?表示式2:表示式3
(1) 條件表示式的執行順序:先求解表示式1,若為非0(真)則求解表示式2,此時表示式2的值就作為整個表示式的值。若表示式1的值為0(假),則求解表示式3,表示式3的值就是整個條件表示式的值。
(2) 條件表示式優先於賦值運算子,max=(a>b)?a:b則先求解條件表示式在賦給max。
(3) 條件表示式的結合方向為“自右至左”如:a>b? a:c>d? c:d應該是a>b? a:(c>d? c:d)
(4) 條件表示式還可以寫成以下形式:a>b?(a=100):(b=100)即表示式2和表示式3不僅可以是數值表示式,還可以是賦值表示式或函式表示式。
(5) 條件表示式中,表示式1的型別可以與表示式2和表示式3的型別不同,如:x?‘a’:‘b’ x是整型變數,若x等於0則表示式的值為‘b’。表示式2和表示式3的型別也可以不同,此時條件表示式的型別為二者中較高的型別。如:x>y?1:1.5如果xy,值應為1,由於1.5是實型,比整型高,因此將1轉換成1.0。
(6) 例:輸入一個字元,判別它是否是大寫字母,如果是,將它轉換成小寫字母;如果不是,不轉換。然後輸出最後得到的字元。
main()
{
char ch;
scanf(“%c”,&ch);
ch=(ch>=’A’&&ch
printf(”%c/n”,ch);
}
條件表示式:表示式1?表示式2:表示式3(1) 條件表示式的執行順序:先求解表示式1,若為非0(真)則求解表示式2,此時表示式2的值就作為整個表示式的值。若表示式1的值為0(假),則求解表示式3,表示式3的值就是整個條件表示式的值。(2) 條件表示式優先於賦值運算子,max=(a>b)?a:b則先求解條件表示式在賦給max。(3) 條件表示式的結合方向為“自右至左”如:a>b? a:c>d? c:d應該是a>b? a:(c>d? c:d)(4) 條件表示式還可以寫成以下形式:a>b?(a=100):(b=100)即表示式2和表示式3不僅可以是數值表示式,還可以是賦值表示式或函式表示式。(5) 條件表示式中,表示式1的型別可以與表示式2和表示式3的型別不同,如:x?‘a’:‘b’ x是整型變數,若x等於0則表示式的值為‘b’。表示式2和表示式3的型別也可以不同,此時條件表示式的型別為二者中較高的型別。如:x>y?1:1.5如果xy,值應為1,由於1.5是實型,比整型高,因此將1轉換成1.0。(6) 例:輸入一個字元,判別它是否是大寫字母,如果是,將它轉換成小寫字母;如果不是,不轉換。然後輸出最後得到的字元。main(){char ch;scanf(“%c”,&ch);ch=(ch>=’A’&&ch