a 和 a最後的運算結果有區別嗎

2022-08-21 07:41:51 字數 6573 閱讀 8783

1樓:匿名使用者

1、作為單獨的語句,a++; 與 ++a; 並沒什麼區別。

2、但是b = a++;和 b = ++a就有區別了:

a++這個式子的返回值是a,所以b = a++相當於b = a,然後a = a+1;

++a的返回值是a+1;所以b = ++a相當於a = a+1; 然後 b = a;

2樓:霧孤閉斜暮

是a++的話,在那一行**中,a的值是不變的,下一行才發生變化,

++a則是在那一行已經發生了變化。

所以最後的運算結果有區別

3樓:匿名使用者

有,比如

a=1;

printf(「%d」,a++);

printf(「%d」,a);

輸出乙個1和乙個2

等效**為

a=1;

printf(「%d」,a);

a=a+1;

printf(「%d」,a);

而a=1;

printf(「%d」,++a);

printf(「%d」,a);

輸出兩個2

等效**為

a=1;

a=a+1

printf(「%d」,a);

printf(「%d」,a);

4樓:匿名使用者

如果是單獨一條語句結果不對其他變數造成影響就沒差別

5樓:求索

加法交換律結合律

結果沒有區別

關於a++和++a的區別,理解

6樓:向前看

一、運算結果不同

2、--a:運算結果是a表示式結果減去一位。

二、運算過程不同

1、a++:運算過程中先執行a表示式,之後再執行自增運算。

2、--a:運算過程中先執行自減運算,之後再執行a表示式。

三、記憶體執行不同

1、a++:在記憶體中暫存器先執行表示式,之後再進一位。

2、++a:在記憶體中,暫存器先進一位之後再執行表示式。

7樓:匿名使用者

speculations about edwa

a++和++a區別啊

8樓:心平氣和

通常說,a++是先取值後運算,++a是先運算後取值。++ 是乙個「自增運算子」,自增運算子有兩種形式:字首自增(++a)和字尾自增(a++)。

運算子和運算元合起來就是乙個表示式(a++、++a都是表示式,a就是運算元)。

拓展資料:

1、每乙個表示式本身都有值(和其型別),有的表示式還有「***」。比如自增表示式的***就是使其運算元自增1。那麼自增運算表示式的值是什麼呢?

a++ 的值就是 a 的值,而 ++a 的值等於 a+1。

2、例如:int a = 100; 最開始時a是100。列印 a++;  這個printf會列印a++的值,注意是a++表示式的值,看前面的講解,a++的值就是a的值,也就是100。

別忘了這語句結束後a的值就會自增1。列印 ++a;  目前a的值為101。現在要列印++a表示式的值,++a的值就等於a+1,所以會列印出102。

此語句後a=101+1=102。

9樓:遠走高飛

an和a的區別,用法區別

10樓:寒虹波谷楓

問題在這,while(a++<10)

比較的時候a第一次是0,但比較完了後a會自加1,然後printf的時候,a已經變成1了。

你可以試試a++和++a在執行次數上是不一樣。

11樓:歧典尉思蓮

++a前自增

--a後自增

如下:m=3

n=m++

先把3賦給n,然後m增1(m的最新值是4)。相反:

m=3n=++m

先m增1,然後把m的值賦給n,(m和n的值都等於4)

12樓:居照靖弘懿

如果a為5

那麼輸出

5(a=5)

5(a=4)4(a=5)5(a=6)

6(a=7)

在後就是先使用現在這個變數當前值,在自加

在前就是先自加,再使用這個變數自加後的值

出這種題的都是吃飽撐的,真正程式設計不會用這種歧義大的寫法的。明白就好,不必深究。

13樓:

「啊」和「呀」的區別為:詞性不同、語氣不同、用法不同。

一、詞性不同

1、「啊」:「啊」可做嘆詞和助詞。

2、「呀」:「呀」可做嘆詞、助詞和象聲詞。

二、語氣不同

1、「啊」:「啊」表示感嘆、肯定、非常肯定、驚嘆、驚訝、恐懼、疼痛的語氣。

2、「呀」:「呀」表示驚疑、疑問、感嘆、祈使等語氣。

三、用法不同

1、「啊」:「啊」用在感嘆句末;用在問句末尾;用在打招呼的話裡;用在重複的動詞後面。

2、「呀」:「呀」在有疑問指代詞的問句或選擇問句裡,用來和緩語氣;在陳述句形式的問句裡,提問的目的是要求得到證實。

14樓:

b=a++,先賦值b=a,再現算a+1

b=++a,先求a+1,再賦值b=a

b*a++,先求b*a,再算a+1

b*++a,先算++a,再算b*(++a)

15樓:

因為沒有說明a的定義,這裡看問題推測應該是個指標a++表示a指向下個位址,例如a如果當前指向陣列num[0]的位址,那麼a++後,當再次使用a時,其應該指向了陣列num[1]的位址了;

*a++表示取指標a指向的位址中存放的內容,然後給指標a++令其指向下乙個位址,如上例a指向num[0],而陣列num[0]中的內容是0的話,那麼,*a++的值應該為0,而執行此語句後對應的a應該指向了陣列num[1]對應的位址了;

也可以這樣說:*a++相當於先取當前a指標指向的位址中內容,然後進行a++,而a++單是對a指向的位址向後移動1個單位而已;

16樓:匿名使用者

自增運算子與自減運算子的使用順序取決於具體的編譯器,有的編譯器運算順序是自右向左,有的是自左向右,沒有很明顯的區別。如果不是必要的話,建議使用++a或a=a+1;這樣可避免因編譯器的不同而導致無法取得預期結果。

如果按自右至左的順序(vc):

a++/*先讓a自增再呼叫a的值*/

++a/*先呼叫a的值再讓a自增*/

乘法運算子的優先順序在自增或自減運算子隻後,所以先進行自增或自減運算希望可以幫助到你

17樓:海德堡羅蘭小森

你可以這樣來想:++a和a++,都是個表示式,最後的結果就取決於是先加,還是後加,如果是先加,那麼最後的表示式的結果就是a的值加1,如果是後加的話,則表示式的值就是原來a的值;而無論是先加,還是後加,a的值計算後一定會加1。

比如:如果a=1,b=a++,運算完b=1,a=2如果a=1,b=++a,運算完b=2,a=2

18樓:陽光刺痛眼眸

a++是先賦值再加1,++a是先加1再賦值。

19樓:

確實有不可以通用的情況

1.啊比較書面化,呀則比較口語化

比如我們平常受到驚嚇,會脫口而出「我的媽呀」卻不會說「我的媽啊」

但朗誦「祖國啊」就不宜朗誦成「祖國呀」。

2.表感嘆語氣時,也有不同。

比如「啊!多麼巍峨的高山」表示的驚嘆。

但是「呀!多麼巍峨的高山」則更多的表示驚奇。

(你得弄明白驚嘆和驚奇的區別)

還有因為讀音的關係造成的區別等。

至於很多細微的變化則要靠你在生活中慢慢體會,一定會有收穫的。

a++和++a的區別,能舉個例子嗎

20樓:仁昌居士

a++和++a的區別為:加1操作不同、操作期間a值不同、過程物件不同。

一、加1操作不同

1、a++:a++先執行加1操作。

2、++a:++a後執行加1操作。

二、過程物件不同

1、a++:a++的過程物件為a引數變數。

2、++a:++a的過程物件為a++表示式。

三、操作期間a值不同

1、a++:a++在操作期間的a值為原值。

2、++a:++a在操作期間的a值為原值+1。

舉個例子:

1、a=1;b=a++;運算後:b=1,a=2。

2、a=1;b=++a;運算後:b=2,a=2。

21樓:匿名使用者

a++ 的含義是先賦值後相加,如 b=a++; 先將a的值賦給b,然後a再加上1;++a的含義是先相加後賦值,如 b=++a 先將a加上1,然後再把加上1的a賦給b.

int a=1;

b=a++; ---> b=a ,b=1;a+1,a=2;

b=++a;--->b=a+1,b=2; 此時的a已經是2

22樓:匿名使用者

a艹做完表示式後自增,艹a先自增再做表示式

23樓:尚學堂科技****

字尾自增法(a++): 先進行表示式運算,再進行自增運算。

字首自增法(++a): 先進行自增運算,再進行表示式運算。

舉例1如下:

public class operation }舉例2如下:public class operation}

24樓:匿名使用者

誒嘉嘉和嘉業的區別能舉例說明嗎?當然了,就像一加一加一和二加一,呃誒加1+2是的,他的用意不一樣。

a++和++a有什麼區別

25樓:a羅網天下

a++:a先建立自身的乙個副本,然後a自增1,最後返回副本的值。

例子:a=3;

b=a++;

執行後b=3,a=4

++a:將a自增1並返回a。

a=3;

b=++a;

執行後b=4,a=4

效率問題:

1.在內建資料型別時(即自增表示式的結果沒有被使用,只是簡單的用於遞增操作),這時這兩個表示式的效率是相同的。

2.在自定義資料型別時(主要指有類的情況),由於++a可以返回物件的引用,而a++一定要是返回物件的值(因為區域性物件不能返回引用)。可想而知引用的開銷當然比直接對物件進行操作要效率高很多,節省很多開銷。

前置++和後置++存在本質上的區別:

前置++ 不會產生臨時物件

後置++ 在返回時有乙個臨時物件的建立

在前置++和後置++ 效果相同的時候,最好使用前置++

26樓:遠走高飛

an和a的區別,用法區別

27樓:砍侃看

a++是先辦事(進行相關執行),後給錢(然後再將a加1)

++a是先給錢(先給a加1),後辦事(然後參與運算)

28樓:匿名使用者

a++的值為a,然後a再加1

++a的值是先加1,即它的值為a+1

29樓:匿名使用者

首先,你這個問題問的很不好,對於乙個問題,你描述的應該是這是在什麼的編譯環境下,windows還是linux,解答的話,上面的高手回答了差不多了

補充下:還有效率的區別,一般在實際環境中,很有必要使用++a

30樓:匿名使用者

類似1++和++1的自加運算,乙個是後加1,乙個是先加1,用的時候要注意當前值是多少

31樓:月路無痕

a++是先運算再執行加1,++a是先加1再運算

32樓:匿名使用者

教你這樣記

a++ 加好在後,所以先參與運算後a自加1

++a 加號在前,所以a先自加1,後參與運算

33樓:匿名使用者

1 a++是先引用,後加;++a是先加,後引用。

2 a++當常量看待,++a當變數看待。

34樓:匿名使用者

第一種情況:

a=3;

b=a++;

執行後b=3,a=4

第二種情況:

a=3;

b=++a;

執行後b=4,a=4

35樓:匿名使用者

a++ 的含義是先賦值後相加,如 b=a++; 先將a的值賦給b,然後a再加上1;++a的含義是先相加後賦值,如 b=++a 先將a加上1,然後再把加上1的a賦給b.

int a=1;

b=a++; ---> b=a ,b=1;a+1,a=2;

b=++a;--->b=a+1,b=2; 此時的a已經是2

堅果和乾果的區別,乾果和堅果有區別嗎?

堅果類食物多數是植物的果實和種子,如花生 核桃 杏仁 松子 榛子 白果 蓮子 瓜子等。帶水分鮮果,晒乾了是乾果 乾果和堅果有區別嗎? 月月 堅果共分為兩種 樹堅果和種子。榛子 核桃 杏仁 腰果這 四大堅果 都屬於樹堅果,也就是植物的精華部分,含有亞麻酸 亞油酸等豐富的不飽和脂肪酸 膳食纖維以及維生素...

加法運算的結果不是和嗎怎麼叫做一共或總共

加減乘除 和差積商等等這些都是數學範圍內的書面計算用語,實際生活中的應用版 上面保持意思和邏輯相權同,不一定非要用書面語的。就像是爸爸媽媽叔叔阿姨這種書面稱呼用語,在日常生活中的稱謂會因為地域不同而會有所不同,打個比方,二伯跟二叔意思可以是一樣的,所以用哪個稱呼都可以,但是長輩沿襲下來的稱呼習慣會影...

運算放大器和比較器的區別,電壓比較器和運算放大器有什麼區別

運放接入不同的電路就會有不同的功能 積分器反向器微分器。最簡單的接法 什麼也不接 就是輸出boolean 正極電壓 負極電壓 一般來說,運算放大器如果不反饋或者正反饋就是比較器。比較器是運算放大器的一種基本用法。比較器就是沒有反饋 正反饋,負反饋 的運算放大器,當正輸入大於負輸入時,輸出無窮大 理論...