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 在是在無符號時 如果是有符號的話.那麼就還有一位是符號為,最高位是符號為。例如 ...