C語言中。inta1,b0,c1執行語句bac後,a,b,c

2021-03-04 01:14:22 字數 1247 閱讀 3365

1樓:

或運算,而且是左結合,!b為真,整個表示式就為真了,不再繼續運算,也就是++a和++c沒有運算,表示式的結果就出來了。

2樓:匿名使用者

|後首先根據運算子優先順序和結合性。((!

b))||((++a)&&(++c))

然後先算!b,此時(!b)=1,為true,於是不需要專算||後的內容了。屬

因為:true||任意表示式=true。

注意,運算子優先順序不代表計算優先順序。

如果你把b=1 結果就是212

3樓:卿楓凌

對於!b||++a&&++c;按照規bai

定, 要先計du算 && (&&的優先順序zhi比||高)也就是需要計算dao出 ++b和c++;

但是按專照優化, 只要計算出 a>0 就可屬以了,不需要計算出 ++b和c++,「||」在這裡起到了短路的功能(短路就是,當第一條表示式能決定整條表示式的結果,那麼後面的語句都不執行!),這也叫做布林法則,給你推薦一本書叫做「c語言解惑」。望採納

大學c語言問題 執行「int a,b,c;a=b=c=1;--b&&++c||++a;"後,變數a

4樓:我才是淡淡

|,首先你要把整個結構弄清楚,&&的優先順序高於||,所以上面的式子等價於(--b&&++c)||(++a),

先看(--b&&++c),--b導致b的值為0,所以(--b&&++c)必然為假,所以c就不會加一了,c的值還是1。然後(--b&&++c)為假並不能直接斷定(--b&&++c)||(++a)的真假,因為||需要兩邊為假才是假,所以需要判斷右邊的(++a),這裡a自加一次變為2,(++a)為真,整個表示式(--b&&++c)||(++a)的值為真。最後a,b,c的值分別是2,0,1

5樓:

你的**是順序結構;

所以執行的時候是先對a進行賦值,也就是a=1;

至於後面對b和c的運算,並不能改變a的值。

第一步 int a,b,c;

第二步 a=b=c=1;

第三步 --b&&++c||++a;//這個地方只有++a能改變啊的值 b和c對a的值不影響

第四步輸出a的值;

6樓:益達是誰

這判斷式a,b,c應該是2-0-2啊,怎麼是201,還有我想問這式子對嗎

7樓:匿名使用者

答案應該是2 1 1

大學c語言問題 int a 0,b 1,c 1,d 3 表示式 bca的值

都是比 優先順序高的運算子,所以先算 b就是2 c就是0 a就是 1 然後算 2 0 1 0 1 1 兩邊只要有一個不為0,結果則為1 望採納 假設int a 0,b 1,c 1,d 3 表示式a b c d是多少 值為0。a b 0 c d 2 0 2 0 作邏輯運算時,c語言是可以這樣用的 非0...

C語言中,int a 3,b 0a a b a中, a具體定義是什麼 為什麼得出來是

是非運算,參與 運算的量是真,結果為假 參與運算的量為假,結果為真c語言版規定 1為真,0為假 但對於變數,權非零即為真,0為假 所以 a 3 a表示假 a a b a 這個整體是與運算,有一個為假 整個結果就為假 在c語言中是邏輯非的意思,即為0或者是非0,題中a 3,所以 a就是0了 c語言裡i...

請問c語言中pb1什麼意思,c語言中ab1是什麼意思

首先p是指標變數,這個意思就是p所指向的地址儲存的內容將變成b 1的值,也就是改變了p指向的值 指標p的值,等於 b 1 c語言中 a b 1是什麼意思 5 相當於這樣 a a b 1 也就是先算出b 1的值,然後乘以a的值,最後賦值給a 相當於a a b 1 比如a為3,b為5 a 3 5 1 首...