1樓:是玉玉不是魚魚
a--的意思就是先使用a再進猛尺行搭銷a的自減,所以是先計算b=3+a,然後進行a--而a-=1就等同於a--也枝枝高等同於a=a-1
2樓:匿名使用者
b=3+a--;這個式子也可以看成鉛旦廳b=3+(a--)對於a--,表示的意思是先a後減,所以式子可以改寫成兩步:b=3+a;然後在a=a-1;(a-=1;就是a=a-1;)
為了便於你的理解,再寫遲拍乙個與之相對的例子:b=3+--a;
這個式子中--a,是要先減槐隱1才用的,所以改寫為a=a-1;,然後在b=3+a;
3樓:yx陳子昂
b = 3+a --實現過程用匯編來看:
****悔陵如下:
int a = 4;
int b = 4;襲源。
b = 3+a--;
對應彙編如下:
1 int a = 4;
0x80483ed : movl $0x4,0x10(%esp)a(值為0x4)壓入棧,位址0x10
2 int b = 4;
0x80483f5 : movl $0x4,0x14(%esp)b(值為0x4)壓入棧,位址是0x14
3 b = 3+a--;拍前態。
0x804840d : mov 0x10(%esp),%eax0x8048411 : add $0x3,%eax0x8048413 :
mov %eax,0x14(%esp)0x8048417 : subl $0x1,0x10(%esp)a從棧位址0x10中移入eax暫存器中,在eax暫存器中加入直接數3從eax再移回棧位址0x14,最後,給棧位址0x10中減去直接數1。
.執行語句「x=(a=3,b=a--)」後,x,a,b的值依次為
4樓:小雨手機使用者
先執行a=3,再執行b=a--,b=3,然後a--生效,a=2,(a=3,b=a--)返回的是逗號最後乙個式子b
即x=b=3,所以a=2,b=3,x=3。
語句x=(a=3,b=++a);x等於多少,能詳細點說明執行過程麼
5樓:網友
x最後等於4。
a=3,b=++a)整體是乙個逗號表示式,逗號表示式從左往右求值,整個表示式的值為逗號後面的表示式的值,換言之,(a=3,b=++a)的值即表示式(b=++a)的值,而(b=++a)是乙個賦值表示式,其值為賦值後的左運算元(此處即b)。
模擬逗號表示式的求值過程,先求值表示式(a=3),將3賦值給a;然後求值表示式(b=++a),將a遞增並將遞增後(因為是前置++,所以遞增後再賦值)的值(此處即4)賦值給b。
最後執行x=(a=3,b=++a),因為(a=3,b=++a)的值是b,此處相當於將b賦值給x。通過先前的分析知道b此時的值為4,因此x最後也等於4。
6樓:網友
int a=0;a=++a;
生成的位元組碼是:
0 iconst_0 --0壓入棧頂。
1 istore_1 [a] -棧頂值(0)存入區域性變數1(a)
2 iinc 1 1 [a] -變數1自加(++a操作,自加後變數1的值為1)
5 iload_1 [a] -變數1的值壓入棧頂(值為1)(+a效果)
6 istore_1 [a] -將棧頂值(1)存入變數1(=操作)
a的值依次變化為:0->1->1x為4
c語言新手 這表示式幫我一步一步解釋下好嗎 。 a*=16+(b++)-(++c)
7樓:
摘要。親親,您好哦,這表示式 a*=16+(b++)c)的意思可以轉化為另外一種表達形式,你就可以理解了,請稍等一下我整理哈,式子比較難打。
c語言新手 這表示式幫我一步一步解釋下好嗎 。 a*=16+(b++)c)
親親,您好哦,這表示式 a*=16+(b++)c)的意思可以轉化為另外一種表達形式,你就可以理解了,請稍等一下我顫高者茄薯整理哈,式子比念拍較難打。
a*可以轉化為a=a*(16+(b++)c)),b++的意思慶鍵則是b執行完譽基巧一次後自增1再執行運算,++c則是自增一再執行鋒陵運算,親親可以參考一下的哦。
b++沒有1是因為c語言為了簡便,可以省略1的。
寫上也是對的。
也就是說b++=b+1
同乙個概念的哈。
噢噢。<>
c語言新手 這表示式幫我一步一步解釋下好嗎 。 a*=16+(b++)-(++c)
8樓:
c語言新手 這表示式幫我一步一步解釋下好嗎 。 a*=16+(b++)c)
就是先++c,得到c的值褲亮中為c+1,之後b++,胡山可是取值仍是原來b的值,然後,a=a乘以(b減去c+1的值加鍵山上16的值)如 :a=2,b=3,c=4;a=a*(16+b-(c+1))得28
c語言新手 這表示式幫我一步一步解釋下好嗎 。 a*=16+(b++)-(++c)
9樓:
c語言新手 這表示式幫我一步一步解釋下好嗎 。 a*=16+(b++)c)
c語言新手 這表示式幫我一步一步解釋下好嗎 。 a*=16+(b++)c)您碧亮好親,a*=16+3-5 a*=14 a=28 ++b是先自增後運算 b++是先運算後自增希望我的能夠幫助到您哦團森!如果我的悔或寬解答對您有所幫助,還請給個贊(在左下角進行評價哦),期待您的贊,您的舉手之勞對我很重要,您的支援也是我進步的動力,最後再次祝您身體健康心情愉快!
設有inta 2,b 1,p a則執行語句p 3 a a b後,變數a的值為
int a 2,b 1,p a p 3 因為指標指向a,所以此時相當於a 3a a b a 3 1 所以a 4 4。最後a的值是4。已知 int a 1,2,3,4 y,p a 則執行語句y p 之後,陣列a各元素的值變為?已知int a y,p a 則執行來語句y p 之後自,陣列a各元素的值變為...
已知A a 1, 2 ,B 3,b 1 根據以下要求確定a,b的值
畫圖你就很明顯了 1題要直線ab y軸,那麼a b兩點應處於同一個x點上,也就是a 1 3,a 2,但不能在同一個y點上,也即b 1不能 2,b不能 3 2題這題剛好相反 直線ab x軸,a b應處於同一個y點上,即b 1 2,b 3,但不能在同一個x點上,所以a 1不能 3,a不能 2 3題要求a...
若已定義inta3,b2,c1則語句a
答案bai d在表示式中,運算步驟為 du如果你zhi不清楚,請看看運dao算符的優先順序 專1.a 則a 4 2.b 則b 3 3.c 則c 2 4.則為真 5.屬 則為直 表示式最後為真。在運算中,b只遞增了一次,所以執行後b的值為3,選d b邏輯運算又別稱 短路運算 對於p1 p2 如果表示式...