c語言中abcabcabcabc有什麼

2021-03-07 03:11:40 字數 5696 閱讀 7336

1樓:匿名使用者

首先謝謝樓主,這個問題真好!我剛才的回答錯了,現在刪了重答,不過執行的結果還是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。這個題目告訴我們上課一定要認真聽講(再次臉紅)。

累死我了。

2樓:美好一瞬間

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

3樓:嵌入式牛

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

賦值表示式: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(即列印出來的值)

以此類推

4樓:習慣有伱

=是賦值語句 是將後頭

的賦給前邊的變數

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

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

5樓:匿名使用者

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

6樓:匿名使用者

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

7樓:匿名使用者

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

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

3 , 0 , 0 ,0

8樓:匿名使用者

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

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

9樓:

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

10樓:匿名使用者

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

11樓:笑著摸你的狗頭

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

12樓:匿名使用者

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

13樓:有錢買不起房子

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

14樓:我叫馳子

3 3 0 0  codeblocks上編的,

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

15樓:匿名使用者

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

16樓:育知同創教育

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

17樓:匿名使用者

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

18樓:幻世封神

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

請採納吧

19樓:研凌工控電腦

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

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

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樓:佔同書母癸

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

22樓:桓培勝陰酉

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

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

0,0,0

23樓:令狐玉枝府培

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

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樓:示奕琛問雀

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

26樓:匿名使用者

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語言中for迴圈怎麼理解C語言中for迴圈怎麼理解?

for迴圈是程式語言中一種開界的迴圈語句,而迴圈語句由迴圈體及迴圈的終止條件兩部分組成,for迴圈一般形式為 for 單次表示式 條件表示式 末尾迴圈體 執行的中間迴圈體可以為一個語句,也可以為多個語句,當中間迴圈體只有一個語句時,其大括號 可以省略,執行完中間迴圈體後接著執行末尾迴圈體 執行末尾迴...

C語言中printfn,C語言中printfnn是什麼意思

6d中 是格式符引導符 d表示是整型資料 其中的6表示最小寬度是6個字元 表示靠左對齊。意思 列印輸出內容 input 然後換行。游標移動到下一行。n 轉義字元。換行的意思。數字或字元。成為為一個字元,即轉義字元。c語言中n 1是什麼意思 n 1中的n指的是每工作1年支付1個月工資的經濟補償。所謂的...

C語言中taiaiaj,C語言中taiaiajajt代表什麼意思啊謝謝了

a是一個指標,a i表示a所指位置的下i個記憶體區,a j同理。這個程式的功能是 交換 a i 和 a j 所指記憶體內區的內容,容t是中間變數。就好像你要交換兩瓶飲料,一瓶汽水,一瓶果汁,交換它們,要找一個空瓶子,這裡,t就是空瓶子 a i 和 a j 就是你要交換的兩瓶飲料,一共要倒三次,你懂了...