c語言自加在前面和在後面有什麼區別

2021-03-03 23:49:12 字數 4468 閱讀 1171

1樓:匿名使用者

在前面是該語句執行前就自加,後面是該語句執行完才自加

2樓:愛々勿々醉

i++表示先使用i的值,然後再++

比如a=i++

則表示a = i ; i++;

++i表示先讓i進行+1操作,然後再使用i比如a = ++i

則表示 i++; a = i;

3樓:ai看雪

看一下這個回答,我不想再敲一遍了

4樓:追夢追夢

++1執行後等於2

1++執行後等於1

在c語言中,++放在前面和後面有什麼區別?詳細解釋please

5樓:董俊錕

分兩種情況

【1】 作為單獨的語句 i++; ++i; 沒區別【2】 在賦值輸出等語句中,++放在前面, 先自加,然後在做其他的操作語句

++放在後面則是 先執行其他的操作,後自加

6樓:匿名使用者

i++是先賦值再計算

++i是先計算再賦值

可以簡單理解成前++優先順序高,後++優先順序最低於是有:

如:i=1 (i++)+(++i)+i

運算順序從左到右

先算第一個括號裡的i++。先賦值則1=(i++),原式變為 1+(++i)+i。再計算後++ ,i=2。

算第二個括號裡的++i。先計算 ,i=3。再賦值則3=(++i),原式變為 1+3+i。

最後就得到原式變為1+3+3=7,i=3

7樓:醉夢清楓

單獨使用無區別

在式子中使用的話

sum+=++i;這個是先對i進行自增1,再加到sum上,等同於:i+=1;sum+=i;

sum+=i++;這個是先把i加到sum上,再把i進行自增1,等同於:sum+=i;i+=1;

8樓:匿名使用者

如果p = 0;if(++p)時,p先加1,再進行if判斷,結果為真;如果是if(p++),則先使用p進行判斷,再對p加1,即,結果為假,但是執行完成後,p都為1

9樓:匿名使用者

b = ++a;

在前面的,先執行自增,也就是a = a+1;執行完再運算本行其他操作,即b = a;

b = a++;

則先運算本行其他操作,b = a;再執行自增 a = a + 1;

ps:一般不推薦一個表示式內有多個++a或者a++,一般只有一個,或者沒有。多個自增在一起,有時候存在歧義,在不同編譯器可能會出現不同結果

10樓:妙趣衡生

++i,先執行自加

++i,後執行自加

比如:j=i++,就是j=i之後,i=i+1j=++i,就是i=i+1之後,j=i

11樓:匿名使用者

符號放在前面需要先+1再賦值,放在後面則剛剛相反即先賦值再+1

12樓:小不點

放在前面相當於先給本身賦值了再運算

後面是先運算了再加

13樓:

放在前面:運算前加,後面:運算後加

14樓:勿戀勿忘

++在前為前增 右邊的變數先自增再將變化後的變數值賦值給左邊的變數,後增先講右邊的變數的值賦給左邊,然後右邊的變數再自增

15樓:匿名使用者

i++簡單的說就是先用i的值再加一,++i是i的值先加一再用

c語言中自加自減運算子前後位置的區別

16樓:匿名使用者

嗯,自加(自減)從結果上來看都是加1(減1),這點肯定沒錯。但是用在表示式中就會有差別了,拿你的例子來說i=5,如果執行下面的語句:

int b = i++;

結果b的值就是5,i的值變為6;

如果是b=++i

那麼b的值就是6,i的值也是6;

所以i++與++i使用在表示式中的時候的區別就是:前者是先使用i的當前值進行計算,再加1;而後者是先加1再進行計算,自減運算也是一樣的。

不知道我說的清楚不

17樓:du瓶邪

以自增運算子為例,當自增運算子++作用於一個變數時例如:當i=3時++i這個算術表示式的值為4,同時變數i的值也由原來的3改變為4。

一般情況下,計算表示式後不改變變數本身的值,而++運算子和--運算子組成的表示式計算後,則改變變數的值,這稱為運算子的***。

這類運算子在計算表示式時,一定要注意區分表示式的值和變數的值。

18樓:匿名使用者

如果是這樣,int,i=5 , j=6 , n

n=i*j 如果是i++那n=31,如果是++i就是36,i++是先運算再自曾,相反先自增在運算,i--相同。

c語言裡自加++和自減——放變數前和變數後有什麼不同作用啊,分別怎麼計算的?

19樓:匿名使用者

運算子在前,表示運算在前取值在後;運算子在後,表示運算在後取值在前c語言是程序式程式設計語言。不同於「純」函數語言程式設計語言,c語言的表示式可以改變變數的值或外部狀態,這被稱為表示式的「***」(side effect)。++i 就是含有***的表示式,在對 ++i / --i 這樣的字首運算子(prefix increment and decrement operators)求值的過程中,按定義發生了以下兩步

改變變數 i 的值

確定運算結果是變數 i 改變後的值

而在對 i++ / i-- 這樣的字尾運算子(postfix increment and decrement operators)求值的過程中,則是以下兩步

確定運算結果是變數 i 的值(此時 i 的值還沒有改變)改變變數 i 的值

20樓:匿名使用者

跟優先順序有關係例如 int a = 1;int b = a++,b就是等於1如果int b = ++a,b就是等於2因為=號的優先順序要高於++,--

21樓:匿名使用者

++(--)放在變數前是先自增(減)再引用反之就是先引用再自增(減)

在c語言中,++放在前面和後面有什麼區別?

22樓:gta小雞

++在變數前:表示式的結果為變數的當前值+1++在變數後:表示式的結果為變數的當前值

例如有int a = 2,則表示式++a的值為3,表示式a++的值為2。

這兩個表示式求值完畢後,a的值均會變為3。

23樓:匿名使用者

i++是先賦值再計算

++i是先計算再賦值

可以簡單理解成前++優先順序高,後++優先順序最低於是有:

如:i=1 (i++)+(++i)+i

運算順序從左到右

先算第一個括號裡的i++。先賦值則1=(i++),原式變為 1+(++i)+i。再計算後++ ,i=2。

算第二個括號裡的++i。先計算 ,i=3。再賦值則3=(++i),原式變為 1+3+i。

最後就得到原式變為1+3+3=7,i=3

24樓:運命に抗

++在前是先加1在運算, 在後面是先運算在加1例子如下。

int i=0;

printf("%d",++i);i加了1才給傳遞引數,所以輸出是1i=0;

printf("%d",i++)前傳遞引數,所以還是輸出原來的值是0printf("%d,i) 因為上面那句加了1所以 輸出是1

25樓:匿名使用者

舉個例子吧,

int x,y;

x=1;

y=x++;

執行y=x++後,y的值是1,x的值為2;若改成y=++x,執行後y的值為2,x的值為2.

總結說來就是++在前的話用的是加一後的值,++在後的話先用原值再加一。

26樓:董俊錕

分兩種情況

【1】 作為單獨的語句 i++; ++i; 沒區別【2】 在賦值輸出等語句中,++放在前面, 先自加,然後在做其他的操作語句

++放在後面則是 先執行其他的操作,後自加

c語言中的"++在前"和"++在後"的區別是什麼?

27樓:運命に抗

++在前是先加1在運算, 在後面是先運算在加1例子如下。

int i=0;

printf("%d",++i);i加了1才給傳遞引數,所以輸出是1i=0;

printf("%d",i++)前傳遞引數,所以還是輸出原來的值是0printf("%d,i) 因為上面那句加了1所以 輸出是1

為什麼汽車的發動機在前面,油箱在後面

因為發動機在前面,車輛在行駛時可以藉助速度給發動機降溫,這是一點,油箱在後面,因為不能離發動機太近了,特別在夏天,發動機有較高的溫度,很危險的。這裡涉及到四種汽車的驅動方式,即前置後驅 前置前驅 中置後驅 後置後驅的。隨著汽車的發展,汽車發動機的佈局根據實際的優缺點進行了多種改變。後置後驅佈局並不是...

夢到老公在前面走我和孩子在後面追

夢是願望隱晦表達,你這個夢其實是你的潛意識讓你打消買你想買的車的願望,因為你很想買,但你的經濟情況又不能買,你的潛意識接受到了你的想法,幫你找了個理由,這樣你有理由不買好車了。夢就是幫助你的助手,雖然這個助手好幼稚 夢見孩子在前面跑,自己在後面老追不上 這就是日有所思,夜有所夢啊,他再前跑,你在後追...

女生走在前面,而喜歡她的男生走在後面,女生髮現了他

我感覺這故事跟我一個朋友很像。那個女生肯定喜歡那個男生的,所以故意放慢腳步。姑娘正在從包裡頭掏磚頭。她到目的地了,準備減速靠邊停車。應該是女生也對該男生也有好感吧,不然早就加快步伐跑掉提交回答了。是因為女生想和他在一起的時間多一點,也許女生認為這樣有安全感 一個女生走在前面,而一個喜歡她的男生走在後...