c語言的表示式這樣寫是合法的嗎?ab4c

2021-03-07 09:46:42 字數 2351 閱讀 1387

1樓:有錢買不起房子

在tc和vc下都能編譯通過,而且輸出為10a=(b=4)+(c=6);

()優先順序最高,所以先處理()裡面的表示式,這樣b=4,c=6,a=4+6.

如果不加(),那麼a=b+4+c=6將是錯誤的賦值語句,因為+優先=,所以先處理b+4+c,這樣等號左邊出現常量4是非法的。

2樓:匿名使用者

程式沒有錯呀,我編譯可以過,可以正常執行

3樓:待翼年代記

**編譯上沒問題啊,vc++6.0執行通過是不是結果不對啊

沒用過turbo c,不是很懂,但是windows 1.0是不是古老了一點啊,應該是lz編譯器問題吧

4樓:匿名使用者

確實沒有錯,我在後面加上getch(),立刻就讀出來了10

5樓:苗涵瑤貳聖

不合法>

操作符的級別比=要高

所以上邊的表示式就相當於a=

(3>b)=5

=操作符是從右到左結合的,所以先執行的是

(3>b)=5;

3>b的結果不能做為一個左值,所以賦值是非法的

這個表示式編譯會報錯。

int a,b; a+=a-=(b=4)*(a=3); 上面的表示式是符合c語言的表示式嗎?

6樓:春風不醉人

合法copy~經過驗證:

#include

int main ()

但是有警告資訊表示b沒有實際呼叫!

7樓:嚄糗

符合的。運算之後 a=-18;

8樓:匿名使用者

合法括號優先,然後從右到左運算

9樓:

合法,c語言中 「等bai號du表示式」的結果,就zhi是等號右邊的dao數值。

例如版 a = b = 4; 這裡的順序是 a = (b=4); b=4 就是等號表示式,權這個表示式的結果就是4,所以a 也被賦予4。

另一種常見的寫法

while ( (ch = getch()) != 'q')這裡先執行 ch = getch(), 然後這個表示式的結果,和'q'進行比較。

回過來,看你的問題

1. b=4後,b的值是4,表示式值4

2. a=3後,a的值是3,表示式值3

3. a-=4*3,也就是 a = a - 12,得到-9,表示式值-9

4. a+=(-9),a=a-9=-18所以

c語言環境中,設a=1,b=2,c=3,d=4,則表示式:a>b?a:c>d?a:d的結果為( )

10樓:lovefree隨風

表示式:a>b?a:c>d?a:d的結果為4。

解析:1、由於c語言的相同優先順序運算子運算規則為從左至右依次運算,而條件運算子具有右結合性,所以表示式:a>b?

a:c>d?a:

d優先運算c>d?a:d,得出的結果為4;

2、再運輸a>b?a:4,得出的結果為4。

所以最終得出的結果為4。

擴充套件資料表示式為:表示式1?表示式2:表示式3

先求解表示式1,

若其值為真(非0)則將表示式2的值作為整個表示式的取值,否則(表示式1的值為0)將表示式3的值作為整個表示式的取值。

例如:1、max=(a>b)?a:b,就是將a和b二者中較大的一個賦給max。

2、min=(a條件運算子具有右結合性

當一個表示式中出現多個條件運算子時,應該將位於最右邊的問號與離它最近的冒號配對,並按這一原則正確區分各條件運算子的運算物件。例如:

11樓:匿名使用者

結果是4,一會寫出過程

「?:" 這是一個三目運算子,以 「c>d?a:

d」這個**為例,程式會首先判斷「c>d」是否為真,若為真則執行冒號前的語句,即其結果為」a「的值;若為假,則執行冒號後的語句,即其值為"d"的值。

一般遇到這樣的題要拆分著做,首先判斷最左邊的「a>b」,這個結果為假,根據條件判斷運算子的性質,所以接下來執行第一個冒號後的語句「c>d?a:d」,接著判斷「c>d」,結果為假,所以最終取值為第二個冒號後的值,即為d的值,也就是4。

12樓:匿名使用者

答案為4,「a?b:c」是從右向左執行的,也就是說a為真的話,這個式子就可以看做b,否則可以看做c;c大於d麼,不是,則變成了a>b?

a:d,a大於b麼,不是,則為d,d=4.

13樓:匿名使用者

答案是4.三目運算子就可求得

C語言程式設計求下面表示式的值,C語言 求表示式的值

這個太簡單了,你查一下優先順序,就知道了,古人云 授之以魚不如授之以漁。解題思路 首先你要明白運算 符優先順序的順序,其次你要明白型別之間的強制轉專換按照優先順序屬的順序首先計算 內的值,再強制轉換為int 也就是int 2.5 4.7 7 然後按運算子優先順序,先算乘除,因為是又目運算子所以由左級...

c語言問題a表示式1,表示式2運算的過程如果是a(表示式1,表示式2)呢

在c語言中,多個表示式可以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後一個表示式的值。所以,第一個的結果是表示式1,第二個的結果是表示式2 逗號表示式c 表示式1,表示式2 中,如果表示式1值為0,c的值是0還是表示式2的值?c語言提供一種特殊的運算子,逗號運算子,優先順序...

c語言表示式0的邏輯值是什麼,c語言,表示式( x 0)的邏輯值是什麼?

x 0,的優先順序高,所以相當於 x 0。題目沒說x是什麼型別,暫且當成整型吧。c的邏輯運算中,把0當做false,非0當做true。表示式進一步解釋為 x false。於是 x 的結果就是,如果x是0,則 x 是true 否則 x 是false。所以,如果x是0,x false的結果是false ...