c語言中條件運算子是怎樣的法則C語言中條件運算子是什麼意思

2021-03-06 23:23:29 字數 3198 閱讀 4529

1樓:匿名使用者

由高到低是:!(非),&&(與),||(或)&&左邊為0則不看右邊運算,||左邊為1不看右邊!

例:main()

執行結果:a=1

b=0c=3

d=1程式執行說明:先執行!b>a即0>a,結果為0(b=0)再執行0&&c結果為0,執行c>2結果為10||1結果為1

因為執行順序為右結合,所以將整個表示式的結果給 d為1}條件運算子:

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

運算規劃:如果表示式1為真,返回表示式2的結果,否則返回表示式3的結果

例如:a=1,b=2

(a>b)?a:b

返回值為2

注意表示式是右結合的.

例:a=1,b=2,c=3

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

相當於(a>b)?a:(b?c:b)

返回值為3

2樓:感冒天天見

我記得好像有一個是? :,例a>b?

1:0.意思就是a>b嗎?

如果是那麼這個表達示的結果是1,否剛就是0.a>b是一個條件,那麼這個表達示只要是一個非0值就會取:之前的值,否則就取:之後

3樓:匿名使用者

not and or 高到低

c語言中條件運算子是什麼意思

4樓:a羅網天下

條件運算子(? : )是一個三目運算子,即有三個運算元。

使用條件運算子(?:)可以實現 if else 的功能,其一般形式為:

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

例如條件語句:

if(a>b)  max=a;

else max=b;

可用條件表示式寫為

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

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

if條件語句例子如下:

直接編譯,程式輸出結果中任意輸入年齡,程式執行結果如下圖所示:

知識擴充套件:條件運算子的運算優先順序低於關係運算子和算術運算子,但高於賦值符條件運算子?和:是一對運算子,不能分開單獨使用。

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

5樓:冰凍了你呢

條件運算子

(?:)是c語言中唯一具的三目運算子,就是說它有三個運算物件。條件運算子的形式是"? :"由它構成的表示式稱為條件表示式

條件表示式的形式為:

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

例如:(a>b)?a+b:a-b

其中,如果a=2,b=1,那麼a>b成立,執行a+b這個表示式,運算結果為3;但如果a=2,b=3,那麼a>b不成立,那麼執行a-b這個表示式,運算結果為-1.

【拓展資料】

(條件表示式1 ? 條件表示式2 : 條件表示式3)條件運算子的功能類似if語句,

例如:if (條件表示式1)

條件表達是2;

else

條件表示式3;

你的思路是不對的,應該是判斷"條件表達是1"真假,若真執行"條件表達是2",若假執行"條件表達是3",在執行了"條件表達是2"或者"條件表達是3"之後就

就執行條件語句後的內容了.

6樓:天水資訊釋出

代表意思如下:

關係運算和邏輯運算的結果都是邏輯值,即"真"和"假"。

由於c語言中沒有邏輯型資料,因此c語言規定用整型資料來表示邏輯值。

用整數值1表示邏輯"真",用整數值0表示邏輯"假"。在c語言中,將非0就視為"真"。

關係運算實際上是邏輯比較運算,它是邏輯運算中的一種。關係運算子的作用是確定兩個資料之間是否存在某種關係。

條件運算子優先順序高於賦值、逗號運算子,低於其他運算子。

7樓:莫道不知卿

表示式1成立:值為表示式2,不成立則為表示式3。

如:max=a>b?a+3:b+4;

如果a>b,那麼輸出結果為a+3。不成立輸出結果為b+4。

8樓:匿名使用者

?:的意思是"?"前的表示式運算結果如果為true,則取":"前的表示式值,否則取":"後的表示式值。

比如c=a>b?a:b;

是求a,b的最大值。

9樓:匿名使用者

有點類似if else 的意思 具體看這個:

c語言中的運算子 ? :(條件運算子)運算過程的講解!

10樓:瀚漠

z=(x=1)?(y=1,y+=x+5):(x=7,y=3);

這句主要的有

du2個運zhi算符

dao,一個條件運算子 ?: ,一個賦內值運算子 z=...

優先順序是條件運算子比容較高,可以轉換成:

z= ((x=1)?(y=1,y+=x+5):(x=7,y=3));

條件運算子:計算 ?前面表示式,為真返回冒號前面的,為假返回冒號後面的。

因為 x=1 表示式整體值為 1,即為真,返回 (y=1,y+=x+5) 表示式的值,這裡是逗號表示式,唯一一個不知道幾目的運算子,像++,--屬單目,+ , - 等是雙目,條件是三目運算子。。。。

逗號表示式從左至右運算,返回最右邊表示式的值,這裡返回 y=y+x+5,即返回7

所以有結果,z=7,x=1,y=7

w=y*'a'/4;

把字元'a'做整數運算,取ascii碼97w=7*97/4;

結果為169.75,但是由於w為整數,取整數部分為169,列印時由於你沒用格式控制、空格等,

所以列印出:177169

c語言中條件運算子的結合性?

11樓:匿名使用者

grade=score>=90?'a':score<=70?'c':'b';

相當於:

if(score>=90)

grade='a';

else

if(score<=70)

grade='c';

else

grade='b';

a?b:c中間的?:是一個三目運算子,而不是2個單目運算子

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

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

c語言中位移位運算子C語言中位移位運算子

位移運算子 符號 描述 左移 右移 位移運算子作用於其左側的變數,其右側的表示式的值就是移動的位數,運算結果就是移動後的變數結果。b a 2 就是a的值左移兩位並賦值為b。a本身的值並沒有改變。向左移位就是在低位補0,向右移位就是在高位上補0。右移時可以保持結果的符號位,也就是右移時,如果最高位為1...

c語言中邏輯運算子用法,C語言中邏輯運算子用法

1 邏輯運算子bai是根據du表示式的值來返zhi回真值或是假值dao。在c語言中沒有專版門的真值和假值,認定權非0為真值,0為假值。2 邏輯運算子運算規則 或 兩個條件中,只要有一個成立,則結果就成立 與 兩個條件中,兩個同時成立,則結果成立,否則不成立 非 取反之意,如果是真,結果是假,如果是假...