C語言中bcbc兩者區別C語言中ab與ba有什麼區別麼?

2021-03-07 09:46:42 字數 6388 閱讀 2608

1樓:匿名使用者

表示式 b++==c 它等價於 b==c; b = b + 1;

如果有表示式++b==c 它等價於 b = b + 1; b == c;

首先兩者的區別是:前者是先比較,然後再自增;後者是先自增,後比較

2樓:匿名使用者

b++ == c 時,會先比較 b 是否與 c 相等,然後b自增1.

++b == c 時,會先將 b 自增1,再比較增加之後的 b 與 c 是否相等。

3樓:匿名使用者

b++是先用後加 相當於b==c b=b+1

++b是先加後用 相當於b=b+1 b==c

4樓:板麥瀧鴻飛

在++b中,++稱為前自加。

在b++中,++稱為後自加。

其計算效果均為運算元自加一。

當單獨一個語句的時候沒有區別,如果用在表示式中:

b++是先取b的值做計算,再自加;

++b是先自加,再取b的值做計算。

比如intb=

2,j;如果j

=b++;

那麼先取b的值賦值給j,於是j值為2,b值再自加,b=3。如果j=++b;

那麼b先自加,得到b=3,然後再取b值計算,j值為3.

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

5樓:匿名使用者

沒區別,==是恆等於,不存在賦值問題,單純比較,怎麼寫都行,但是=號就不一樣了,是右邊賦值給左邊

6樓:育知同創教育

寫法幾乎沒有什麼區別。前後順序不影響的。

7樓:匿名使用者

雙等號 是比較運算子, 沒有什麼區別

8樓:幻世封神

沒什麼區別,看個人習慣了

請採納吧

9樓:研凌工控電腦

無區別,這和只有一個=號不同

c語言中b++和++b有什麼區別

10樓:匿名使用者

在++b中,++稱為前自加。

在b++中,++稱為後自加。

其計算效果均為運算元自加一。

當單獨一個語句的時候沒有區別,如果用在表示式中:

b++是先取b的值做計算,再自加;

++b是先自加,再取b的值做計算。

比如int b = 2, j;

如果j = b++;

那麼先取b的值賦值給j,於是j值為2,b值再自加,b=3。

如果j = ++b;

那麼b先自加,得到b=3,然後再取b值計算,j值為3.

11樓:明久理

運算順序的差別,如果只是單獨的一句話,例如b++;或是++b;那麼是一樣的

但是如果是在其他表示式中,納悶b++就是與b帶入算式進行運算,然後b=b+1;

而++b,這時先b=b+1;然後將新的b放入算式中運算

12樓:帥帥的狗尾巴草

b++是自增量,++b就不知道了

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

13樓:匿名使用者

這個太有區別了!

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必然先於左側的"=="結合。

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

14樓:匿名使用者

||在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)嚴格說是不太一樣的

15樓:匿名使用者

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

16樓:匿名使用者

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

17樓:安徽新華電腦

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

18樓:牆頭r等紅杏

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

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

19樓:匿名使用者

首先謝謝樓主,這個問題真好!我剛才的回答錯了,現在刪了重答,不過執行的結果還是3,1,0,0 這個我實際操作過了。首先=和==的意思樓上各位已經說的很清楚了,一個是賦值,一個是判斷,==的優先順序高於=,==兩邊的值若相等,則判斷為真,整個表示式的值為1,否則為0。

這是前提,下面來看這個問題。剛才我的錯誤在誤以為printf函式是自左向右執行,就像我們的書寫習慣一樣,不過實際不是。由於printf執行引數輸出時是壓棧操作(為了支援不定個數的引數的輸出,故從後向前執行),所以會先對最後一個進行操作,也就是從右向左輸出(臉紅,老師貌似也講過,不過。。。

悔不該當初啊)。所以整個printf執行步驟如下:第一步是最後一個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。這個題目告訴我們上課一定要認真聽講(再次臉紅)。

累死我了。

20樓:美好一瞬間

「=」是賦值符,把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

21樓:嵌入式牛

其實就是兩個表示式的值:

賦值表示式:a=b的值是b,執行後a為b的值關係表示式:a==b可能是 0(當a和b不相等),1(當a和b的值相等)

例項分析如下:

a=b=c執行結果是a、b、c都等於3,整個a=b=c的賦值表示式值(即要列印出來的值)也是3

a=b==c:運算子優先順序相當於:a=(b==c);對於關係表示式a==c的值為0,故相當於a=0,而a=0表示式的值是0(即列印出來的值)

以此類推

22樓:習慣有伱

=是賦值語句 是將後頭

的賦給前邊的變數

==是邏輯語句 是判斷符號兩邊是否相等的

printf是從後往前判斷的所以

你這個題重先判斷a==(b==c)這個語句 結果為0再判斷a=b==c 因為b=c 所以b=3 a==(b=c)結果為0

再判斷a=b==c 因為==優先順序高 所以 b==c的結果是1 所以a=1 所以結果是1

最後判斷a=b=c 從右向左算 所以最後結果為1所以答案應該是 1,1,0,0

23樓:匿名使用者

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

24樓:匿名使用者

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

25樓:匿名使用者

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

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

3 , 0 , 0 ,0

26樓:匿名使用者

一個是賦值,一個是邏輯,運算順序不同,有一個優先順序的不同.

還有就是結合性不同,一個是向左,一個是向右

27樓:

=為賦值,==為判斷是否相等。此兩種操作符運算優先順序不同。

28樓:匿名使用者

答案分別是3,0,0,0

29樓:笑著摸你的狗頭

執行結果是3,3,0,0 我是在dev-c++上編譯的

30樓:匿名使用者

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

int main()

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

31樓:有錢買不起房子

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中不同的表達

32樓:我叫馳子

3 3 0 0  codeblocks上編的,

c語言中 b++與++b個代表什麼意思?

33樓:匿名使用者

b++ 是b自加,例如b的初始值為1,運算一次後就為2,運算兩次就為3,依次類推;++b一般不會像b++一樣出現,會和其他的運算一起出現,如b=3,a=++b,這個式子是a先等於b然後b再自加,最後a等於3,b等於4(只是舉例說明自加的順序不一樣).希望能幫到你~

34樓:匿名使用者

b++的結果是b的值,b在自增1;

++b是先使b自增1,其結果與b自增後值相同。

例:int p,q,a=3,b=3;

p=a++;

q=++b;

則p=3,a=4,q=4,b=4

35樓:匿名使用者

b++ 是先取值再自加1

++b 是先自加1再取值

舉個例子:

int p,q,a=3,b=3;

p=a++;

q=++b;

這時候p的值為3,q的值為4

36樓:曹津榮

b++先使用在加1

++b先加1在使用 不在具體語句中扎樣分辨是沒意義的例如;a=1;

b=a++;

c=a;

則b先使用a=3付給b,然後a=4;然後付給c; b=3 c=4a=1;

b=++a;

c=a;

則a先加1 在付給b b=4,c=4;

5除2 餘數為1的意思

c語言中和的區別,C語言中和的區別

邏輯與,抄前後條件襲同時滿足表示式為真 邏輯或,前後條件只要有一個滿足表示式為真 按位與 按位或 和 是邏輯運算,與 是位運算 假如在計算機中true以非0值表示,不同的編譯器true值也不一樣,一般為1 a b true,a b 0 值唯一 a b 0xff 值唯一 跟 沒有關係,在用 的地方一般...

c語言中ltgt和有什麼區別C語言中和有什麼區別

舉例說明 例如你使用的是turboc include 代表編譯時直接在turboc軟體設定指定的路徑 預設是turboc所在資料夾下的include資料夾 中尋找裡面是否有stdlib.h的庫檔案。如果有,直接載入 如果沒有,報錯 無法找到庫檔案 include stdlib.h 代表編譯時先尋找你...

C語言中headnode是什麼,C語言中,頭指標head,和headnext分別是什麼

應該是個變數名,直譯過來是頭指標,一般用在連結串列裡 c語言。如圖。星號 跟在node後面和在head前面有什麼區別?這兩種寫法效果是一樣的,沒有區別 如同 定義一個指標變數,可以寫 int p int p int p 沒區別 都是代表結構體指標 c語言中,頭指標head,和head next分別是...