C三目運算子的問題,C中三目運算子是什麼,怎麼用

2021-03-04 06:19:27 字數 4720 閱讀 2872

1樓:匿名使用者

函式的定義

《修飾符》 《返回值型別》 《函式名稱》(引數列表)

c2059 並不是關鍵字,不能作為修飾符。

2樓:匿名使用者

c2059-int empty()/*判斷鏈bai佇列

du是否zhi為空

dao內*/

改為:容

int empty()

c++中三目運算子是什麼,怎麼用

3樓:匿名使用者

三目運算子是?:結構的運算

所謂三目就是需要三個變數進行運算的操作。版它等權價於短if-else操作。

舉個簡單的例子:

c=a>b?a:b

這可分成幾個部分,用括號分開:

(a=)(2>1)?(3):(4)

最左邊是賦值操作

第二個部分是一個判斷

第三和第四部分是兩個常數

首先判斷第三部分是否成立,成立即選擇第三部分,否則選擇第四部分它相當於

if(a>b)

c=a;

else

c=b;

上面的例子用於獲得a和b的最大值。

這種運算還可以巢狀

比如判斷year是不是閏年,是則返回1,不是返回0flag=(year%100==0)?(year%400==0?1:0):(year%4==0?1:0)

4樓:匿名使用者

三目運算就是下面這算式了

a>="a"&&a<="z")?(a+32):a它的意思是:a代表的字元在小寫字母'a'和'z'之間嗎?如果回是答,運算結果是

a+32;如果不是,結果是a

這段程式應該是字母大小寫轉換,但有點問題。如果是想把小寫轉成大寫,後面應該是(a-32);如果是想把大寫轉成小寫,引號裡應該是大寫字母a和z

5樓:匿名使用者

x = p? q: r; 相當於是 if(p) x=q; else x=r;

cout << p? q: r; 相當於是 if(p) cout << q; else cout << r;

c++ 三目運算子問題

6樓:匿名使用者

三目運算就是下面這算式了

a>="a"&&a<="z")?(a+32):a它的意思是:a代表的字元在小寫字母'a'和'z'之間嗎?如果是,運算結果是a+32;如果不是,結果是a

這段程式應該是字母大小寫轉換,但有點問題。如果是想把小寫轉成大寫,後面應該是(a-32);如果是想把大寫轉成小寫,引號裡應該是大寫字母a和z

7樓:匿名使用者

語法錯誤a>="a"&&a<="z":應該是a>='a'&&a<='z'吧,如果雙引號應該就表示是字串了,所以應該是單引號。

如果想轉換大小寫a+32,應該改為a-32,好像是a=96,a=64。

三目運算子的意思就是:如果變數a 在字元'a'與'z'之間,就返回a+32的值,如果不是,則返回a的值。

然後再將返回的值賦給變數a。

8樓:匿名使用者

a=(a>='a'&&a<='z')?(a-32):a功能將a中的字母小寫轉換為大寫

a=(a>='a'&&a<='z')?(a+32):a功能將a中的字母大寫轉換為小寫

條件運算子和條件表示式

如果在條件語句中,只執行單個的賦值語句時, 常可使用條件表示式來實現。不但使程式簡潔,也提高了執行效率。

條件運算子為?和:,它是一個三目運算子,即有三個參與運算的量。

由條件運算子組成條件表示式的一般形式為:

表示式1? 表示式2: 表示式3

其求值規則為:如果表示式1的值為真,則以表示式2 的值作為條件表示式的值,否則以表示式2的值作為整個條件表示式的值。

條件表示式通常用於賦值語句之中。

例如條件語句:

if(a>b) max=a;

else max=b;

可用條件表示式寫為

max=(a>b)?a:b;

執行該語句的語義是:如a>b為真,則把a賦予max,否則把b 賦予max。

使用條件表示式時,還應注意以下幾點:

1) 條件運算子的運算優先順序低於關係運算子和算術運算子,但高於賦值符。

因此 max=(a>b)?a:b

可以去掉括號而寫為

max=a>b?a:b

2) 條件運算子?和:是一對運算子,不能分開單獨使用。

3) 條件運算子的結合方向是自右至左。

例如:a>b?a:c>d?c:d

應理解為

a>b?a:(c>d?c:d)

這也就是條件表示式巢狀的情形,即其中的表示式3又是一個條件表示式。

9樓:匿名使用者

a=(a>="a"&&a<="z")為真,就把a+32賦給a;為假,把a賦給a,即不變,然後輸出a。。

10樓:匿名使用者

這是三目運算的形式

表示式1 :? 表示式2:表示式3

先判斷表示式1 是否為真 如果為真 則執行表示式2 否則執行表示式3

所以暱所給題目中 應先判斷?號前的表達真假 真則:a+32 假則:a

?號前 為一個邏輯表示式 加一個賦值語句 先看邏輯表示式真假 將其值賦給a

因為前面為真 所以執行 a+32

注意 此時 a的值已與原來不同

11樓:匿名使用者

那是a+32麼。。好像應該是減吧。。。

12樓:匿名使用者

如果你想把小寫轉成大寫,要寫成(a-32)

關於c++三目運算子的問題

13樓:

可以這bai麼分割:

d = ( a+b? ( c=d-a?a:c) : b)意思是這樣第du

一個三木運算子如zhi果a+b非零結果則 d = ( c=d-a?a:c ) ,為零則dao為版d = b;

第二個,先權令c = d - a ,然後同理 c 非零結果為 a ,為零則結果為c ,你可以自己測幾組資料試試,不明白可以追問。

比如:int a = -1 , b = 2 , c = 3 , d= -1;

d=a+b?c=d-a?a:c:b;

此時結果為3,原理如上。

14樓:匿名使用者

表示式中 存在 賦值(=) 算術加(+) 算術加(-) 和 條件運算子(?:) 四種運算子

其中 賦值 的 優先順序最低,專條件運算子略高,算術運屬算符最高所以有d =

a + b

?c = ( d - a ? a : c ):b;運算過程等價於

if (a + b)

d = c;

} else

15樓:手機使用者

計算結果8,三目運算

符是這樣的:a?b:

c,若a表示式為真,則三目運算子結果為版b表示式的結果, 若權a為假,則為c的結果,那麼9>1.88為真,那麼三目運算式結果為a,也就是sizeof(a),還有型別轉換,比較時把整形的變成double型的,結果為double的sizeof為8

16樓:匿名使用者

賦值運算子的優先順序低於三目運算子,因此語句定價於:

d = ( (a+ b) ? ( c=((d-a)?a:c)) :b);

c++ 三目運算子是什麼

17樓:砍侃看

#include

int main()

a>b?a:b;

其實dao就相當回於

答if(a>b)

return a;

else

return b;

18樓:fly愛與希望

就是唯一的那個吧

條件?滿足時 。。。。。。。:不滿足時。。。。。。。。。

c語言三目運算子問題。

19樓:陌上

如果y值為0則輸出的是後面的「no」然後回車,如果不為0則直接輸出回車。判斷語句中0為假。不為0為真。

c++三目運算子?:是幹嘛用的?

20樓:匿名使用者

三目運算子《表示式1>?《表示式2>:《表示式3>; ,屬於關係運算子,

常用於關係比較,主要用於比較關係的狀態只有兩種的情況(大於 和 不大於,真 和 假)

先求表示式1的值, 如果為真, 則執行表示式2,並返回表示式2的結果 ; 如果表示式1的值為假, 則執行表示式3 ,並返回表示式3的結果

比如以下表示式:

a>0? a++:(a = 1)

當a>0為真 時,執行a++,整個表示式的值等於表示式a++的值,當a>0為假 時,執行a=1,整個表示式的值等於表示式a=1的值。

21樓:匿名使用者

a>b? a:b

等價於if(a>b)

print("%d",a);

else

print("%d",b);

22樓:匿名使用者

相當於一個條件判斷。

23樓:匿名使用者

比如說max=a>b?a:b ; 如果a>b,max就等於a,反之等於b

C三目運算子問題關於c三目運算子的問題

三目運算就是下面這算式了 a a a z a 32 a它的意思是 a代表的字元在小寫字母 a 和 z 之間嗎?如果是,運算結果是a 32 如果不是,結果是a 這段程式應該是字母大小寫轉換,但有點問題。如果是想把小寫轉成大寫,後面應該是 a 32 如果是想把大寫轉成小寫,引號裡應該是大寫字母a和z 語...

C語言中怎樣理解三目運算子條件運算子的右結合性

這裡涉及了c中的優先順序 結合性 求值順序。結合性只有在相同優先順序的運算子間才起作用,比如a b c,與 優先順序不同,這裡根本不用去管結合性。而a b c則需要進行結合性考慮了,如果 為左結合性,那麼應該理解為 a b c,如果 為右結合性,那麼應該理解為a b c 當然了,我們已經知道 為左結...

c 運算子過載問題

1 注意 有字首和字尾之別,字首形式是變數先加1然後執行表示式,而字尾形式則是先執行表示式然後再使變數加1,所以在執行字尾的 運算子時應先反回物件的原始值,然後才對物件加1。2 預設的帶有一個引數的 運算子函式是字首 運算子,要過載字尾的 運算子必須採用另一種方式實現。過載字尾的 運算子時應給函式多...