c語言中唯一的三目運算符
Ⅰ c語言三目運算符怎麼用
C語言三目運算符用法:
對於條件表達式b ? x : y,先計算條件b,然後進行判斷。如果b的值為true,計算x的值,運算結果為x的值;否則,計算y的值,運算結果為y的值。
一個條件表達式絕不會既計算x,又計算y。條件運算符是右結合的,也就是說,從右向左分組計算。例如,a ? b : c ? d : e將按a ? b : (c ? d : e)執行。
<表達式1> ? <表達式2> : <表達式3>; "?"運算符的含義是:先求表達式1的值,如果為真,則執行表達式2,並返回表達式2的結果;如果表達式1的值為假,則執行表達式3,並返回表達式3的結果。
可以理解為條件 ? 結果1 : 結果2裡面的?號是格式要求。也可以理解為是不是條件成立,條件成立為結果1否則為結果2。
(1)c語言中唯一的三目運算符擴展閱讀:
三目運算符,又稱條件運算符,指的是計算機語言(c,c++,java等)的重要組成部分。它是唯一有3個操作數的運算符,所以有時又稱為三元運算符。一般來說,三目運算符的結合性是右結合的。
以下是關於條件運算符的幾點說明:
(1)通常情況下,表達式1是關系表達式或邏輯表達式,用於描述條件表達式中的條件,表達式2和表達式3可以是常量,變數或表達式。例如:
(x==y)?'Y':'N'
(d=b*b-4*a*c)>=0?sqrt(d):sqrt(-d)
ch=(ch>='A'&&ch<='Z')?(ch+32):ch
以上均為合法的條件表達式。
(2)條件表達式的執行順序為:先求解表達式1,若值為非0,表示條件為真,則求解表達式2,此時表達式2的值就作為整個條件表達式的值;
若表達式1的值為0,表示條件為假,則求解表達式3,表達式3的值就是整個條件表達式的值。例如:
(a>=0)?a:-a 執行結果是a的絕對值。
(3)在程序中,通過把條件表達式的值直接賦予某個變數。例如:
min=(a<b)?a:b執行結果就是將條件表達式的值賦予變數min,即將a和b二者中較小的數賦給min。
(4)條件表達式的優先順序別僅高於賦值運算符,而低於前面遇到過的所有運算符。
因此,min=(a<b)?a:b括弧可以不要,可直接寫成,min=a<b?a:b如果有x<y?x+1:y-1等效於x<y(x+1):(y-1)而不等效於(x<y?x+1:y)-1
(5)條件運算符的結合方向為"自右至左".
(6)條件表達式允許嵌套,即允許條件表達式中的表達式2和表達式3又是一個條件表達式。例如:
x>0?1:x<0?-1:0
上述條件表達式中,表達式3部分又是一個條件表達式.根據條件表達式的結合性,上述條件表達式等價於:
x>0?1:(x<0?-1:0)
其作用是判斷x的符號情況.當x為正數時,該條件表達式的值為1;當x為負數時,該條件表達式的值為-1;當x為0時,該條件表達式的值為0。
(7)條件表達式不能取代一般的if語句,僅當if語句中內嵌的語句為賦值語句(且兩個分支都給同一變數賦值)時才能代替if語句。例如:
if(a%2==0)
printf("even/n");
else
printf("odd/n");
該語句的作用是:若 a 為偶數,輸出 even;若 a 為奇數,輸出odd。
(8)表達式1,表達式2,表達式3的類型可以不同.此時條件表達式的值的類型為它們中較高的類型。
Ⅱ C語言中唯一的一個三目運算符是什麼
?:是C語言唯一的一個三目運算符,A?B:C相當於if...else語句
Ⅲ C語言中a+=a-=a*=a答案是多少
a初值為12時,a+=a-=a*=a結果為0步驟:這個表達式的運算是從右向左的:1. a*=a:a=a*a=12*12=1442. a-=144: a=a-144=144-144=03. a+=0: a=a+0=0+0=0。
Ⅳ 在C語言中: 是什麼意思
1、意思是:
是條件運算符,條件運算符是C語言中唯一的三目運算符,就是說他有三個運算對象。
2、條件運算符的形式是「?:」由他構成的表達式稱為條件表達式。
形式為:表達式1?表達式2:表達式3
(4)c語言中唯一的三目運算符擴展閱讀:
一、表達式為:表達式1?表達式2:表達式3
先求解表達式1,若其值為真(非0)則將表達式2的值作為整個表達式的取值,否則(表達式1的值為0)將表達式3的值作為整個表達式的取值。
例如:
1、max=(a>b)?a:b
就是將a和b二者中較大的一個賦給max。
2、min=(a<b)?a:b
就是將a和b二者中較小的一個賦給min。
3、優先順序
條件運算符優先順序高於賦值、逗號運算符,低於其他運算符
例如:
⑴
m<n
?
x
:
a+3
等價於:(m<n)
?(x)
:(a+3)
⑵
a++>=10
&&
b-->20
?
a
:
b
等價於:(a++>=10
&&
b-->20)
?
a
:
b
⑶
x=3+a>5
?
100
:
200
等價於:x=
((
3+a>5
)
?
100
:
200
)
參考資料:網路-條件運算符
Ⅳ c語言中a-=a是什麼意思
a-=a的意思為a=a-a,先用a減a,然後再將得到的結果賦值給a。-=實際上是一種縮寫形式,使得對變數的改變更為簡潔。
運算時,可以將其寫成熟悉的形式,從右向左依次計算,注意在每次計算時,變數的值會發生改變, 如不注意,就會導致錯誤的情況發生。
(5)c語言中唯一的三目運算符擴展閱讀:
復合賦值運算符有下列這些:
符號 功能
+= 加法賦值
-= 減法賦值
*= 乘法賦值
/= 除法賦值
%= 模運算賦值
<<= 左移賦值
>>= 右移賦值
&= 位邏輯與賦值
|= 位邏輯或賦值
^= 位邏輯異或賦值
參考資料來源:網路-復合賦值運算符
Ⅵ !(--x)在c語言中是什麼意思
!(--x)在c語言中的意思是:對變數x先進行自減,再對變數x的值取邏輯非,如果x為0,表達式為真,非0表達式為假。
" !0" 這個邏輯表達式的值為1(判斷的這個數為0,成立,則其表達式的值為1)," !1" 這個邏輯表達式的值為0(判斷的這個數非0,不成立,則其表達式的值為0)。「--」是自減運算符,含義是對變數先減1後取值。
在計算機裡面進行的是二進制運算,邏輯判斷的結果只有二個值,稱這二個值為「邏輯值」,用數的符號表示就是「1」和「0」。其中「1」表示該邏輯運算的結果是「成立」的,如果一個邏輯運算式的結果為「0」,那麼這個邏輯運算式表達的內容「不成立「。
(6)c語言中唯一的三目運算符擴展閱讀:
C語言運算注意事項:
1、注意表達式的優先順序。圓括弧【()】屬於第一級優先順序,邏輯非運算符【!】屬於第二級運算符,因此先進行圓括弧【()】內的運算,再進行邏輯非運算符【!】運算。
2、相較於語言中的+=和-=運算符,自增運算符更加簡潔,且可以控制效果作用於運算之前還是之後,具有很大的便利性。
Ⅶ C語言中三目運算符是什麼
選擇運算,就是A:B?C那個。
三目運算符為a?b:c即有三個參與運算的量。由條件運算符組成條件表達式的一般形式為:
其求值規則為:如果表達式1的值為真,則以表達式2的值作為條件表達式的值,否則以表達式2的值作為整個條件表達式的值。 條件表達式通常用於賦值語句之中。
(7)c語言中唯一的三目運算符擴展閱讀:
對於條件表達式b ? x : y,先計算條件b,然後進行判斷。如果b的值為true,計算x的值,運算結果為x的值;否則,計算y的值,運算結果為y的值。一個條件表達式絕不會既計算x,又計算y。條件運算符是右結合的,也就是說,從右向左分組計算。例如,a ? b : c ? d : e將按a ? b : (c ? d : e)執行。
Ⅷ C語言中『\n'是什麼意思
' 的意思是:回車換行。將當前位置移到下一行的開頭。
1、 是換行符,通常在輸出中用作格式控制; '就是一個轉義字元,其意義是「回車換行」。
2、轉義字元以反斜線""開頭,後跟一個或幾個字元。轉義字元具有特定的含義,不同於字元原有的意義,故稱「轉義」字元。
3、一般放到printf()這類函數中使用,比如:printf("this is a test
Please check it
");
結果是:this is a test Please check it
(8)c語言中唯一的三目運算符擴展閱讀
所有的ASCII碼都可以用「」加數字(一般是8進制數字)來表示。而C中定義了一些字母前加""來表示常見的那些不能顯示的ASCII字元,如 , , 等,就稱為轉義字元,因為後面的字元,都不是它本來的ASCII字元意思了。
轉義字元串(Escape String),即字元實體(Character Entity)分成三部分:第一部分是一個&符號,英文叫ampersand;第二部分是實體(Entity)名字或者是#加上實體(Entity)編號;第三部分是一個分號。
比如,要顯示小於號(<),就可以寫 < 或者 < 。
用實體(Entity)名字的好處是比較好理解,一看lt,大概就猜出是less than的意思,但是其劣勢在於並不是所有的瀏覽器都支持最新的Entity名字。而實體(Entity)編號,各種瀏覽器都能處理。
參考資料
網路-轉義字元