1樓:完蛋鬧
運算的順序是從左到右:
第一次:++b —— b = 4
第二次:++b —— b = 5
++b + ++b —— result = 5 + 5 = 10第三次:++b —— b = 6
10 + ++b —— result = 16
2樓:匿名使用者
printf("%d\n",(++b)+(++b)+(++b)); 從左向右, 第一個 ++b b= 4 第二 ++b b=5 然後由於 從左向右的原因, 變成了 5+5+(++5) 先算左邊的5+5 產生臨時值 10 + 最後的 ++b 為 6 結果 = 16
3樓:匿名使用者
結果為16沒錯,但運算順序不一定是從左至右,他們優先順序相同,儘量避免這種情況,當一個變數多次出現在同一個表示式裡時,不要將增量或減量運算子運用到它的上面。
4樓:郗壁
首先進行第一步「a=5」:將5賦給a,這樣實現了a=5
然後進行第二步「b=a++」,由於++為字尾,所以先將a值賦給b,結果b=5,然後進行a++運算,a=6
然後進行第三步「c=--a-b++」,首先--為字首,所以先運算--a,結果a=5,由於++為字尾,所以接下來先運算c=a-b,結果c=5-5.為0,最後進行b++運算,結果b=6
最後一步「d=(a++)-(++b)+c--」,先運算括號裡面的「a++」和「++b」,結果a=6,b=7,由於--為字尾,所以先運算d=a-b+c,也就是d=6-7+1=0,最後運算c--。結果c=-1
以上是運算結果,考的主要是運算的優先順序,是這樣的,看見括號裡面的,先運算括號裡面的,沒有括號的,你要看++或是--,是字首,還是字尾,如果是字首的話,先運算++或是--運算,如果是字尾的話,你就先運算整個式子,運算完了整個式子,再運算++或是--運算,至於具體的例子,我給你的計算過程,你可以自己結合著體會一下,有什麼不明白的,就追問我。
5樓:來自清源山倚欄待月的卡嘉莉
樓主做過實驗沒,感覺算出來是15啊
另外,如果工作以後這樣寫**,會被炒魷魚的
6樓:維師兄
nll……bda kucda
c語言中c=(++a,b++,a++,++b);表示的是什麼意思?
7樓:匿名使用者
c=(++a,b++,a++,++b);逗號運算子是從左往右做取最後一個表示式的值++a後a的值為11,b++後b的值為11,a++後a得值為12,++b後b的值為12++b的意思是先做自增然後取b得值。所以整體c輸出為12另b++表示先取b得值為表示式的值然後在做自增。a++和++a也是同理。
8樓:匿名使用者
最後c=12。(++a,b++,a++,++b);是個逗號表示式,從左到右計算。c的結果由表示式最右邊的式子決定。
++a之後a=11;b++之後b=11;a++之後a=12;++b之後表示式值為12,b的值為12。
9樓:萊玉巧辛嫻
b是一個整型變數,a也是一個整型變數,c是一個整型陣列,所以c[a],就是取c陣列裡,a變數所指下標位置的值,b+=c[a]
就是等價於
b=b+c[a]
c語言b=a++和b=(a++)的區別
10樓:哇哎西西
c語言b=a++和b=(a++)沒有區別。
這個和()沒什麼關係,注意理解a++和++a的區別:
a++: 先將a的值代入表示式,在表示式運算完畢後,再將a進行++處理。
++a: 先將a進行++處理,再將a的值代入表示式。
注意對於a++這裡有一個「在表示式運算完畢後,再將a進行++處理」。
b=(a++); 這是一個賦值表示式,
所以先將a的值代入表示式,必須等到賦值表示式運算完畢後,再將a進行++處理。
也就是說必須等到給b賦值完畢後,才將a進行++處理。
所以b=3,a=4
11樓:匿名使用者
這個和()沒什麼關係,我詳細的講一下,你一定要看完啊:)注意理解a++和++a的區別:
a++: 先將a的值代入表示式,在表示式運算完畢後,再將a進行++處理
++a: 先將a進行++處理,再將a的值代入表示式注意對於a++這裡有一個「在表示式運算完畢後,再將a進行++處理」,b=(a++); 這是一個賦值表示式,
所以先將a的值代入表示式,必須等到賦值表示式運算完畢後,再將a進行++處理,
也就是說必須等到給b賦值完畢後,才將a進行++處理所以b=3,a=4
c語言高手們!!i=(--a= =b++)? --a:++b;表示什麼????
12樓:心在夢途
--a和b++就不多說了,自增自減語句~
你可以這麼理解:
首先:看--a==b++語句,它無非有兩種結果:--a等於或不等於b++,即1或0;
其次,看(--a= =b++)? --a:++b語句,它是條件判斷語句,就是(--a= =b++)為真的時候執行--a,為假的時候執行b++;
最後,看i=(--a= =b++)? --a:++b;語句,由第二步可以看出,當--a等於b++時,即(--a= =b++)為真時,該語句相當於i=--a;當--a不等於b++時,即(--a= =b++)為假時,該語句相當於i=++b;
c語言程式只要一步步好好理解,應該會很簡單的,加油哦~
13樓:景秀越蔡德
--a,a先自減1,再與b比較。a=3-1=2=b,--a==b++為真,執行--a,a=2-1=1
j=a++,先將a的值賦給j,j=a=1,a再自增1j=1
14樓:匿名使用者
i=(--a= =b++)? --a:++b;
這個是個判斷語句
相當於:
if(--a==b++)
else
++b和--a是自增和自減語句 就不多解釋了
15樓:匿名使用者
這是考你三目運算子與賦值運算子優先順序問題。
三目運算子比賦值運算子優先順序高。
所以先計算(--a= =b++)? --a:++b再計算i=
在c語言的環境下,a=5;b=a++;c=--a-b++;d=(a++)-(++b)+c--;結果是多少,怎麼算?
16樓:匿名使用者
首先進行第一步「a=5」:將5賦給a,這樣實現了a=5
然後進行第二步「b=a++」,由於++為字尾,所以先將a值賦給b,結果b=5,然後進行a++運算,a=6
然後進行第三步「c=--a-b++」,首先--為字首,所以先運算--a,結果a=5,由於++為字尾,所以接下來先運算c=a-b,結果c=5-5.為0,最後進行b++運算,結果b=6
最後一步「d=(a++)-(++b)+c--」,先運算括號裡面的「a++」和「++b」,結果a=6,b=7,由於--為字尾,所以先運算d=a-b+c,也就是d=6-7+1=0,最後運算c--。結果c=-1
以上是運算結果,考的主要是運算的優先順序,是這樣的,看見括號裡面的,先運算括號裡面的,沒有括號的,你要看++或是--,是字首,還是字尾,如果是字首的話,先運算++或是--運算,如果是字尾的話,你就先運算整個式子,運算完了整個式子,再運算++或是--運算,至於具體的例子,我給你的計算過程,你可以自己結合著體會一下,有什麼不明白的,就追問我。
17樓:匿名使用者
a=5;
b=a++,這部之後b=5,a=6
c=--a-b++這步之後c=0,a=5,b=6d=(a++)-(++b)+c--這步之後d=0,a=6,b=7,c=-1
18樓:猶望亭菅羅
1.switch結構分支沒加break;跳出語句,開始執行後,程式由x=1調到case1分支
a++(a由0自己加為1),由於沒有break語句,程式繼續執行到case2分支
a++b++(a由1自加變2,b由0自加為1),之後程式printf輸出
a=2,b=1
2.新增break後,結果是a=1,b=0#include
"stdio.h"
main()
printf("a=%d,b=%d\n",a,b);}
c語言(a=2,b=5,b++,a+b)這個括號表示式的值怎麼算
19樓:匿名使用者
(a=2,b=5,b++,a+b)這個叫逗號表示式,其值為最後一個表示式a+b的值8。
20樓:匿名使用者
計算步驟:
1、a=2
2、b=5
3、b++,結果b=6
4、a+b,結果為8
8即為整個表示式的值
c語言c=(a+=++b,b+=4)是什麼意思?
21樓:匿名使用者
考的是c語言運算子優先順序問題,
c=(a+=++b,b+=4)
1、++運算子優先順序高於+=;
2、,運算子優先順序最低,先求,號前的表示式,再求,後的表示式,最後結果為,後的表示式結果。
假設a=5,b=8
首先,a+=++b,得到 b = b+1 = 9; a= a+b= 5 + 9 = 14;
其次,b+=4,得到b = b+4 = 13;
最後,c=13.
建議你上機程式設計執行。
22樓:
++b;
a=a+b;
b=b+4;
c=b;//c等於最後一次計算的結果
c語言中return的作用,C語言中return的作用?
作用1 表示返回,這個程式可以結束了,可以不帶引數,如果你的成員執行到這裡,你就不往後執行了,可以加一個return語句,就不會再執行了 作用2 返回指定型別的值,在定義函式的時候不是有 int af int 這裡是返回值,return 後面接的就是這個返回值,這個函式執行後就可以給別的變數賦值了,...
c語言中for語句是怎麼用的,C語言語言中FOR的用法
for語句通常具有如下形式 for statement1 statement2 statement3 這裡,statement1 statement2和statement3是一般的語句。其中statement2應具有布林型別,但在c中具有int型別 因為c語言不支援布林型別 這段語句的執行流程如下 ...
c語言中switch結構的使用,C語言中switch結構的使用
秋風依舊好 因為case後面不能接範圍,也就是說case後面是一個確實固定的常量.用下面的方法比較好,include int main 你可以先把範圍用字母或常量代替 再用switch語句 資料 include void main else printf score scanf d s system...