請具體解釋一下a 1 a aaa的運算過程

2021-05-01 11:31:39 字數 4461 閱讀 9587

1樓:匿名使用者

像a=1; a=(a++)+(++a)+(a++) 這樣子的題,用一堆加加減減放在加減號的兩面,等號的兩面的題不要再做了,請你也不要再為它的結果而好奇了,這個不同的編譯器的結果會不同的,而不同的結果也不能說是誰對誰錯,它們都有自己的解釋,就是說這個加號減號的運算順序是不確定的,注意是運算順序,不是結合順序,比如(++i)+(++i)+(++i),這個式子,你只能根據優先順序的表確定括號裡面的先執行,但是誰都不能確定的告訴你三個式子是哪個先執行,所以有了不同的結果,在c的標準裡面,這個是沒有規定運算順序的,在c的標準裡面,有且僅有四個運算子是規定了運算順序的,注意是運算順序,那就是與&&,或||,逗號運算子,,唯一的三目運算子?:,除了這四個運算子規定是從左到右執行的,剩下的都沒有規定運算順序。

2樓:大同一劉

不明白就不用,那東西沒意義!

3樓:2008科比

國內某些叫獸寫的書真搞,大肆宣揚不能用goto,事實上要一次從n層迴圈內跳到最外層最好的方法就是goto

乙個表示式內出現同一變數多次自增(尤其是前增),這真正要避免的情況,反而沒有太多強調

4樓:匿名使用者

不同編譯器不同

不要這樣用

int a=1 ;(a++)*(++a)的值是多少?怎麼算

5樓:匿名使用者

int a=1 ;(a++)*(++a)的值是抄3

(a++):a先參與運算後,a的值再自增1

(++a):a先自增1後再參與運算

(a++)*(++a):a的初始值=1,(a++)a= 1參與運算,a的值自增1後等於2

(++a)a的值自增1後等於3,再參與運算

所以(a++)*(++a) = 1*3 = 3

(a++)*(a++)= 1*2=2; //(a++)a= 1參與運算,a的值自增1後等於2

//(a++)a= 2參與運算,a的值自增1後等於3

(++a)*(a++)=2*2=4; //(++a)a的值自增1後等於2,再參與運算

//(a++)a= 2參與運算,a的值自增1後等於3

(++a)*(++a)=2*3=6; //(++a)a的值自增1後等於2,再參與運算

//(++a)a的值自增1後等於3,再參與運算

6樓:斬天及

bai首先++i是「先」

自增、「

後」du執行;zhii++是「先」執行、「後」自dao增;

這裡所謂版的「先」、「後」,對權於不同的程式語言意義不同——在c語言中所謂的「先」「後」是相對於一條完整的語句而言的。也就是說,在c語言中,++i是在整條語句執行之前「先」自增,「後」執行整條語句;而i++是「先」執行完整條語句、「後」自增。

明白了這個問題,再來看你的問題:

1、先看前面的「(a++)」,是需要等執行完整條語句,也就是直到遇到後面的分號才將a的值增加1;

2、再看後面的(++a),是需要在整條語句執行之前,也就是上乙個語句「int a=1;」之後就直接把a的值加1,而不是等執行了*前面的半條語句「(a++)」後才自增。

注意理解:「先」、「後」是相當於一條完整的c語句而言的,而不是以那個乘號為準的!

明白了這個道理,那麼(a++)*(a++)就是1,(++a)*(a++)或(a++)*(++a)就是4,(++a)*(++a)就是9,

7樓:聽不清啊

(a++)*(++a)的值是1*3=3

求c語言大神給我講解下下圖中的c=(a-=a-5),(a=b,b+3); 的運算過程以及中間逗號的意思

8樓:匿名使用者

首先,請搞明白一種表示式叫逗號表示式,就是將一組語句連著寫出來,中間用逗號分隔;表示式的取值是最後乙個語句的取值。

c=(a-=a-5),(a=b,b+3); 這個語句是乙個逗號表示式,前面的語句是c=(a-=a-5);後面的語句是(a=b,b+3);後面的語句也是個逗號表示式,整個表示式的值沒有處理,所以不關心。

計算:a-=a-5;即a-=-5;即a+=5;結果a=5c=(a-=a-5)結果c=5,a=5

a=b結果a=0

b+3運算了等於3但沒有儲存結果,對a,b,c的值不產生影響(a=b,b+3)的值是3,即b+3的結果,但這個結果也沒有儲存,對a,b,c的值不產生影響

最終:a=0,b=0,c=5

9樓:匿名使用者

中間的逗號起到分隔作用,逗號是乙個雙目運算子(a,b)返回的是b的值,同

時逗號是從左往右算,所以先算a

(a-=a-5)   中,先算a-5還是  -= ?要看運算子優先順序,-比-=高,所以先算a-5 =-5

然後a-=-5,此時a仍未0,所以該表示式為5第二個同理

(a=b,b+3)返回的是b+3

值得一提的是,由於逗號比賦值優先順序低,所以c=(a,b),(c,d)實際上是

c=(a,b),返回的是b

10樓:無敵玉琴

a=0;b=0;c=5

設a=5,則表示式a+=a*=a的值是,表示式(++a)*1/3的值是 5

11樓:匿名使用者

首先運算會從右開始copy計算,先算baia*=a,這句的意思是dua=a*a,這句話執行之後zhia=25,這一步沒錯.之後再計算則是daoa+=25,由於此時的a=25了,也就是a=a+25,所以這句話執行後a=25+25=50。所以最終結果為50,而不是30!

12樓:風間的軌跡

首先運算會從右開始計

算,先算a*=a,這句的意思是a=a*a,這句話執行之後a=25,之後再計算a+=5,也版就是a=a+5,所權以這句話執行後a=25+5=30。最終結果為30!第二個表示式中++a表示先對a做自加1之後再做後面的運算,也就是現在a=a+1,a=6.

之後6*1/3=2,第二個結果為2.

若有定義:int x,a;則語句x=(a=3,a+1);執行後,x、a的值依次為()。請解釋下,謝謝!!

13樓:匿名使用者

x = (a =3, a+1) ; 括號裡是逗號運bai算符,規則:從du左到右依zhi次求值,最dao後面的為最終變

內量,所以過程是:容

a = 3 ;

臨時變數 = a+1 ; 臨時變數存放4x = 臨時變數。 // x = 4

14樓:有錢買不起房子

(a=3,a+1)是個逗號表示式,表示式依次從左向右執行,表示式的值為最後乙個表示式即a+1的值

這樣,a=3,x=a+1=4

15樓:李修炎

這是逗號表示式,x=4,a=3

c語言中for(a=1;;a++)是什麼意思

16樓:天雲一號

在c語言中,for(a=1; ; a++)表示乙個死迴圈。

具體解釋如下:

for迴圈的判斷條件預設,也即永真版。每迴圈一次,a的值權就會加1,一直到溢位,溢位之後,條件還是為真,所以會繼續執行,進行反覆迴圈操作,使程式陷入死迴圈中。

注:for迴圈的格式為:

for(語句1; 語句2; 語句3),其中語句1,2,3都可以預設。for(a=1; ; a++)表示的就是語句2預設。

17樓:酷哥

for是c語言中常見的迴圈語句,它由三部分組成,中間用;隔開。

1、迴圈開始的點

2、迴圈結束的點

3、迴圈遞增的值

上述語句的意思是,a的值從1開始累加,每次加1,無限迴圈。

18樓:東方不敗

for(a=1;;a++) a=1時進入該迴圈,兩個分好中間的是迴圈結束的條件,空缺就表示沒有結束條件,迴圈將一直執行;a++你應該知道了吧。這樣寫在程式裡a將一直自加1

19樓:低調_浪子

a=1是迴圈的初始條件

;;中間的是限制條件 只要滿足這個條件才能進行迴圈,沒有寫就版是不設限制條件權

a++是每次迴圈後要進行的運算, 運算完後再和限制條件比較,符合的情況下繼續迴圈,不符合退出迴圈

如果對你有幫助 請採納

20樓:軟體

意思是 a從1開始迴圈 for

結構裡面的語句

21樓:

遍歷a,使得a從1開始一直自加1,沒有限制。

22樓:匿名使用者

如果a = 1,a累加迴圈,但是沒有退出迴圈條件

23樓:清風徐徐吹不涼

死迴圈,從a=1開始一直迴圈

24樓:流星不死

a從1開始無限迴圈 每次+1

請幫我解釋一下這個夢境,請給我解釋一下這個夢境

本人就這夢談談我的理解.供參考.通常夢中的陰影是代表了自己的一部分的.你或者是認為近期自己的思想內部在鬥爭,有一些事讓你無法選擇,無法取捨.所以你在夢中幫你決定了取捨,於是你感覺到輕鬆.你是不是睡覺姿勢沒搞對喲!如果這些夢第二天還能記得,說明當時人並沒有進入熟睡的狀態。請給我解釋一下這個夢境 夢見愛...

詞語,請幫我解釋一下,請幫我解釋一下上面的詞語,實在不會啊

塑造 基本解釋 1.用語言文字或其他藝術手段表現人物形象 用泥土等可塑材料制 物形象。朝霞 只有紅光 橙光 黃光穿透大氣,天空染上紅橙色,形成朝霞。編織 把細長的東西交叉組織起來。茁壯 1.年輕人 孩子 動植物等 健壯 強壯。2.形容某一種動植物或人生長的十分結實。衷心 是指無保留地,忠實的 熱情 ...

請給我解釋一下這個夢境,誰給我解釋一下夢境

夢見愛因斯坦的夢境解釋與吉凶 夢見與歷史上的名人會夢見,親友將遭受病難的預兆。要給予病痛纏身或體弱多病的朋友婉轉的安慰。誰給我解釋一下夢境 生命禪院雪bai峰先生對夢的du 解釋 夢境是36維空間之一。zhi 夢是一種現象dao,任何現 專象的背後都有一種 屬的本質,是 的本質導致了現象的出現。海市...