c語言中ab》c和ab》c中有啥子不同

2021-03-07 09:46:42 字數 5833 閱讀 1405

1樓:會飛的小兔子

一、a==b>c和a==(b>c)是一樣的表達方式,先判斷b>c是否成立,如果成立,用1和a比較,如果a=1,則整個表示式為1。

1、若為真,a為1則該表示式為真,即該符合表示式的值為1。

2、若為假,a不為0則該表示式為假,即該符合表示式的值為0。

二、a=b>c和a=(b>c)是一樣的表達方式,先判斷b>c是否成立,如果成立,把1賦給a。

1、如果b>c為假,則把0賦值給a。

2、如果b>c為真,則把1賦值給a,

擴充套件資料c語言中a=b=c,a=b==c,a==(b=c),a==(b==c)的使用

#include

main()

2樓:仁昌居士

c語言中 a=b>c 和a==b>c區別為:執行步驟不同、結果值不同、結果物件不同。

一、執行步驟不同

1、a=b>c:a=b>c的執行步驟為b>c。

2、a==b>c:a==b>c的執行步驟為先b>c,再a==(b>c)。

二、結果值不同

1、 a=b>c:如果b比c大,則 a的結果值為true;如果b比c小或相等,則 a的結果值為false。

2、a==b>c:如果b比c大,且a為true,則a==b>c的結果值為true;如果b比c大,且a為false,則a==b>c的結果值為false;如果b比c小,且a為false,則a==b>c的結果值為true;如果b比c小,且a為true,則a==b>c的結果值為false。

三、結果物件不同

1、 a=b>c: a=b>c的結果物件是變數a。

2、a==b>c:a==b>c沒有結果物件,只有結果值是。

3樓:匿名使用者

1.a=b>c相當於a=(b>c)是一個賦值表示式,把(b>c)的值賦給a,

(1)如果b>c為真,則把1賦值給a,

(2)如果b>c為假,則把0賦值給a。

(3)執行完該表示式,僅a的值改變,b、c的值不變。

2.a==b>c也相當於a==(b>c)是一個符合表示式,先判斷(b>c)的真假,

(1)若為真,a為1則該表示式為真,即該符合表示式的值為1。

(2)若為真,a不為1則該表示式為假,即該符合表示式的值為0。

(3)若為假,a為0則該表示式為真,即該符合表示式的值為1。

(4)若為假,a不為0則該表示式為假,即該符合表示式的值為0。

(5)執行完該表示式,a、b、c的值都不發生改變。

4樓:徐章林

第一個,先判斷b>c是否成立,如果成立,把1賦給a,否則把0賦給a

第二個,先判斷b>c是否成立,如果成立,用1和a比較,如果a=1,則整個表示式為1,否則整個表示式為0。

5樓:匿名使用者

a=b>c

a=(b>c)a最後的結果不是0就是1,這可以說是一個賦值表示式a==b>c

a==(b>c),這個是判斷表示式

在c語言中a==b==c與a==b,b==c有區別嗎?

6樓:匿名使用者

這個太有區別了!

a==b==c 是一個關係表示式,由於運算子"=="具有左結合性,故其運算順序是:

((a==b) ==c )

若a=5,b=5,c=5,則a==b的值為1,而1==c的結果為0a==b,b==c是分別判斷a和b以及b和c關係運算補充,樓上說a==b==c是先執行b==c是錯誤的,因為c語言中只有賦值運算子和單目運算子具有右結合性,故運算物件b必然先於左側的"=="結合。

再次補充:這不是賦值的問題,沒有賦值運算子,而是關係運算

7樓:匿名使用者

||在c語言中a==b==c與a==b,b==c有區別的

a==b==c意思是將a和b的值等於c,而a==b,b==c而這一句是a的等於b,b的值等於c.比如你是在對a,b進行判斷:if(a==b==c)與if(a==b||b==c)嚴格說是不太一樣的

8樓:匿名使用者

有區別,前者執行b==c,a==b,正好與後者相反,順序不同。 結果不一定相同,和計算機的精度有關!

9樓:匿名使用者

有區別,前者先執行b==c,後執行a==b,正好與後者相反。順序不同,但結果相同。

10樓:安徽新華電腦

賦值表示式最後會返回最後被賦值的那個值。

11樓:牆頭r等紅杏

涉及到一個誰先把值賦給誰的區別。其他沒啥區別。

c語言中,a=b=c,a=b==c,a==(b=c),a==(b==c)有什麼區別?

12樓:美好一瞬間

「=」是賦值符,

把c的值賦給b賦給a,最後a、b、c的值都相等,「==」是判斷符,結果為bool型。

1、c語言其語言同其語言般區 ,賦值操作符 與 等於 運算子c語言區。

2、= 賦值 == 等於運算 說 a=b=c, 表示式執行a值賦給b、c執行完abc值相等。

3、 a=b==c,複合表示式先a值賦給b與c比較相等則返0,否則返非零值。

4、a==(b=c),複合表示式先執行括號內容(即b值賦給c)比較a、c相等則返0否則返非零值。

5、a==(b==c),複合表示式先比較b、c值相等則返0否則返非零值比較a與(b==c)返值,看c區 = 跟 ==。

6、 ps:lz程式風格且習慣引用stdio.h希望改附我改寫程式: #includeint main()  執行結:3,0,0,0

13樓:佔同書母癸

c語言和其他語言不同,在其他語言中,一般不區分

賦值操作符與等於

運算子,但是c語言很區分。

=是賦值

==是等於運算

也就是說,

a=b=c,

是一個表示式,執行到這裡時,將a的值賦給b、c,執行完後abc的值相等;

a=b==c,是一個複合表示式,先將a的值賦給b,然後與c比較,如果相等則返回0,否則返回一個非零值;

a==(b=c),是一個複合表示式,先執行括號中的內容(即將b的值賦給c),然後比較a、c,如果相等則返回0,否則返回一個非零值;

a==(b==c),是一個複合表示式,先比較b、c的值,如果相等則返回0,否則返回一個非零值,然後比較a與(b==c)的返回值(注意這裡不是再比較a與b或c,以前就錯在這裡過,希望lz注意)。

可以看到c是區分=跟

==的,雖然對新手很麻煩、容易錯,但是一旦熟練之後會覺得很靈活,能把賦值語句放到任何你喜歡的地方。

ps:lz的程式風格不好,而且還不習慣引用stdio.h,希望改正。附我改寫的程式:

#include

intmain()

執行結果:3,0,0,0

14樓:桓培勝陰酉

c語言中一個等於號表示,將右邊的值賦給左邊,兩個等於號在一起才表示真正的等於,是關係運算子。運算順序都是從右到左。

上面的個程式執行的結果為3,

0,0,0

15樓:令狐玉枝府培

a=b=c,是賦值語句,從右到左,a=3,b=3a=b==c

是邏輯語句,相當於(a=b)==c,先將b值賦值給a,然後和c比較是否相等,這句返回為0

a==(b=c),同上句.

a==(b==c),先計算括號內的b==c返回為0,然後在a==0,返回0。

=和==是2中不同的表達

16樓:能淑珍類倩

a=b=c

b=3;a=3;

a=b==c

b==c結果為1,再a=1,輸出為3;

a==(b=c)

等價於a==3,輸出為1;

a==(b==c)

b==c結果為1,a==1結果為0,輸出為0;

最後的輸出是

3,3,1,0

17樓:示奕琛問雀

=是賦值,==是關係等,=的運算級別低,==的運算級別高,=從右向左結合,==從左向右結合

18樓:匿名使用者

c語言中,a=b=c,a=b==c,a==(b=c),a==(b==c)有什麼區別:

一個是賦值,一個是邏輯,運算順序不同,有一個優先順序的不同,還有就是結合性不同,一個是向左,一個是向右。

c語言中,a=b=c,a=b==c,a==(b=c),a==(b==c)解答方法:

第一步是最後一個a==(b==c),b是2,c是3,明顯不等,所以b==c的值是0,然後a是1,和0又不等,所以整個式子值為0;第二步為倒數第二個,a==(b=c),先將c賦給b,此時b和c都為3,再判斷a與b是否相等,a為1,不等,整個式子為0;第三步:a=b==c,經過上一步,此時b和c都為3,所以判斷b==c為真,值為1,然後將1賦給a,輸出a,就是1;第四步:a=b=c,自右向左,先將c值賦給b,再將b值賦給a,輸出a,即為3,結果3,1,0,0。

在c語言中a-=b+c應該是a=a-(b+c)還是a=a-b+c?

19樓:男人的—煙

a=a-(b+c)

原因:運算子「+」的優先順序大於「-=」,編譯器會先進行加法運算。

20樓:匿名使用者

不同編譯器可能答案不同,在你的編譯器上試驗一下就知道了。

21樓:love青春似歌

在來c語言中a-=b+c應該是a=a-(b+c)-=的意思:

1、 -=是c語言自中bai的一du個複合運算子。zhi2、 -=為雙目運算,dao 形式為:a-=b表示含義為:a=a-bc語言中複合賦值運算子 :

1、<<= 的意思是左移等。a<<=b其實就是a=a<2、 >>= 的意思是右移等。a>>=b其實就是a=a>>b.

3、&=  的意思是與等。a&=b其實就是a=a&b.

22樓:匿名使用者

第一種 a- =c 即 a=a-c; 而c編譯bai系統會先運算dub+a,所以因該是第zhi一dao種;內#include"stdio.h"void main()如果執行結果是1.0~則是第一種是2.

0~則是第二種容。

c語言中,a=3,b=4,c=5; a||b+c&&b-c怎麼理解?

23樓:蹦迪小王子啊

||||

||baia || b + c && b - c= a || ((b + c) && (b - c))= 3 || ((4 + 5) && (4 - 5))= 3 || 1

= 1按照優du先級,先加減運算

zhi,後邏輯dao運算

而邏輯運算的幾個運算元版都是非0的,可以認權為是1因此最終結果為邏輯1

擴充套件資料c語言的運算子主要用於構成表示式,同一個符號在不同的表示式中,其作用並不一致。下面按計算的優先順序,分別說明不同作用的表示式。需要特別指出,在c語言標準中,並沒有結合性的說法。

相同優先順序運算子,從左至右依次運算。注意字尾運算優先順序高於字首。因此++i++應解釋為++(i++)。

而與或非的運算優先順序都不一樣,因此a && b || b && c解釋為(a && b) || (b && c)

合理使用優先順序可以極大簡化表示式。

24樓:匿名使用者

|(b - c))=3 || ((4 + 5) && (4 - 5))=3 || 1=1每對一個邏輯算符運算,得到的值都是非0即1,整個邏輯表示式內

的計算相當於將其分容解成幾個子式進行計算。以後有問題歡迎hi我

c語言中有定義abc10那麼abc2應該怎麼判斷

先算c 2 20,所以b 20。賦值運算子結果等於左值,所以返回b的值20 a 10,故a 20為假,整個表示式返回0。0為假,一切非0值都是 真 b c 2 即為真,就是1,然後a在第一步a b c 裡結果為1,1 1,所以a結果還是1 c語言問題。a b c什麼意思?a b c 3 什麼意思?a...

在c語言中a b c應該是a a b c 還是a a b

a a b c 原因 運算子 的優先順序大於 編譯器會先進行加法運算。不同編譯器可能答案不同,在你的編譯器上試驗一下就知道了。在來c語言中a b c應該是a a b c 的意思 1 是c語言自中bai的一du個複合運算子。zhi2 為雙目運算,dao 形式為 a b表示含義為 a a bc語言中複合...

c語言中有符號型別的int範圍,C語言中 有符號型別的int範圍( 128 127)是怎麼求出來的,特別是 128 怎麼理解 負數用二進位制怎麼表示

恩!首先要指出你的一個錯誤!int的範圍不是 128 127 這個是char的範圍,範圍的大小是由型別所佔有的位元組來決定的。如此所示 char是一個位元組8bit,那麼在二進位制中,8bit最大值是255,最小值是0 在是在無符號時 如果是有符號的話.那麼就還有一位是符號為,最高位是符號為。例如 ...