c 前後自加,c 中前自加和後自加的區別

時間 2022-11-13 02:20:50

1樓:糖二灰

一種很簡單的方法給你理解。

++在前,就是說這個++在這一句程式中就起作用了,也就是在遇到的第乙個「;」前已經作用。

++在後,說明這個++在這一句程式中不起作用,直到這句程式結束,就是在遇到的第乙個「;」前不起作用,它作用範圍在這個分號";「之後。

int d=b++;

就是讓b自增,然後賦值給d,但是++在後,所以這個自增在該句程式中不起作用,所以d=4.

這種理解方法對於剛開始接觸自增的來說,是最簡單的一種方法。

2樓:風若遠去何人留

int c=++a

等同於int c;

a = a+1;

c=a;

先自加 再賦值

int d=b++;

等同於int d

d = b;

b = b + 1;

先賦值再自加

這個就是++在前或者在後的區別

3樓:

按樓主說的,先複製再加1結果沒錯啊

這樣說,

a++就是先使用a(不一定是賦值)然後a加1++a就是先加1然後使用a

希望回答能幫到你,**不清楚再問。

4樓:匿名使用者

int c=++a;是先將a+1後再賦值給c,int d=b++;是先將b的值賦值給d,然後b的自身的值在加1

c++中前自加和後自加的區別

5樓:_葉子妞妞

前自加和後自加區別在於運算順序和結合方向。

c/c++中有兩種自加運算,其運算子均為++,功能為將運算子自加1.

其中:++var被稱為前自加,其後面的變數執行自加操作,其運算為,先執行自加操作,再引用var值。

var++被稱為後自加,其前面的變數執行自加操作,其運算為,先引用var值,再進行自加操作。

如果自加語句獨立成為乙個單獨的語句,那麼前後自加是完全相同的。

比如單獨的一行

a++;

和++a;

是一樣的。

再比如,常見的for迴圈:

for(i = 0; i < 100; i ++)

for(i = 0; i < 100; ++i)

這裡用到的++i和i++是完全相同的,沒有區別。

當運算變數本身值會在自加語句中,同時執行其它操作,二者就有區別了。

比如int i =0;

while(i++<10);

i會先和10比較大小,然後執行自加。這樣當i=10時,退出迴圈,再執行一次自加,退出後i值為11。

而如果寫成

while(++i<10);

是先執行自加,然後再與10比較。這樣在i=9時,先自加,得到i=10,然後比較就會退出迴圈了。這種情況下,退出後i值為10。

再舉乙個例子。

int a, i = 10;

a = i ++; //這裡i要先賦值,再自加。語句執行後a=10, i = 11;

而如果寫成:

int a, i = 10;

a = ++i; //這裡i要先自加,再賦值。語句執行後a=11, i = 11;

6樓:小小小小小宅宅

自加是先用那個數加1後再運算,後自加是先那這個數去運算,然後再給這個數加1

請問c++語言中前自增和後自增的區別?

7樓:阿笨

先增和後增是指在乙個表示式中的區別,例如

int a=5

int c=++a; //c=6

int c=a++; //c=5

這是不一樣的,因為++a和a++都是乙個表示式,而他們表示式的值不同。

但如果不是乙個表示式

int a=5;

++a; //無論是++a還是a++都一樣

int c=a; //c=6

因為這時候++a和int c=a;在兩個表示式!

所以迴圈體的結果是一樣的,++a和b++都是獨立的表示式,執行完後就沒有差別了,然後再做迴圈結果判斷,再做迴圈體都是一樣的。

所以是for(int a=1;a!=5;++a) //先a+1 在判斷迴圈.

for(int a=1;a!=5;a++)// 先a+1 在判斷迴圈.

是一樣的!!!!

8樓:

for(int a=1;a!=5;++a) //先a+1 在判斷迴圈.

for(int a=1;a!=5;a++)// 先判斷迴圈, 在a+1

總體來說, 在一行表示式中 前++ , 他高於其他運算子的優先順序, 所以先算這個. 後++ 反之

9樓:匿名使用者

暈,樓上的解釋。。。。

先增和後增是指在乙個表示式中的區別,例如

int a=5

int c=++a; //c=6

int c=a++; //c=5

這是不一樣的,因為++a和a++都是乙個表示式,而他們表示式的值不同。

但如果不是乙個表示式

int a=5;

++a; //無論是++a還是a++都一樣

int c=a; //c=6

因為這時候++a和int c=a;在兩個表示式!

所以迴圈體的結果是一樣的,++a和b++都是獨立的表示式,執行完後就沒有差別了,然後再做迴圈結果判斷,再做迴圈體都是一樣的。

所以是for(int a=1;a!=5;++a) //先a+1 在判斷迴圈.

for(int a=1;a!=5;a++)// 先a+1 在判斷迴圈.

是一樣的!!!!

c++中,++x和x++(就是前自增和後自增)有什麼區別。比如x++*++y應該怎麼算?

10樓:匿名使用者

其實應該這樣問,在vc6中有什麼區別。答:例如b=0;a=++b;結果是b=1,a=1。 要是換成a=b++;那麼a=0,b=1。

11樓:匿名使用者

++x返回值是增後值 x++返回值是增前值那個表示式的返回值是x*(y+1)(自增前)

c++語言,前置自增操作符和後置自增操作符有什麼區別

12樓:辭玖觸漫

舉個例子:如果定義i=2;執行j=i++;後,j=2;i=3;但是執行j=++i;後,j=i=3;如果不執行賦值操作,單獨的i++和++i沒區別,都是i=i+1;

13樓:蒼之遺跡

前置自增是先本體+1然後進行其他操作,後增是先進行其他操作後再自+1比如 前置 int i1=0;

int i2=2;

i1=(++i2)+5; 此時先算i2=i2+1 故i2=3 然後i1=i2+5=8 結果i1=8 i2=3

int i1=0;

後置 int i2=2;

i1=(i2++)+5; 此時先算i1=i2+5=7 再算i2=i2+1=3 結果i1=7 i2=3

14樓:匿名使用者

++i ; 是先+1。再取值

i++ ; 是先取值,再+1;

c++中自加、自減。自乘、自除是什麼意思

15樓:匿名使用者

自加 +=

自減 -=

自乘 *=

自除 /=

都是二元運算子

其實是省略了乙個運算的運算元,就是操作的變數本身

c語言中感嘆號!是什麼意思?還有前加加和後加加是什麼意思,例如:++c c++

16樓:匿名使用者

感嘆號是邏輯非啊!比如說!真也就是假的意思!

至於++c與c++一般情況下沒啥區別,不過就是在運算中有點區別,比如說int c=5;int d=c++與int e=++c,前者是賦值給d之後再自增1,也就是前者最後結果是d=5,c此時等於6,而後者是先c自增為6,然後賦值給e,也就是e=c=6

17樓:匿名使用者

你好,c語言中有一類叫做字型大小符符號,在c語言大多起分隔作用,並無重要意義,但是沒了這一類符號的存在,那麼c語言將不在能過組成乙個程式…我的回答只供參考,如果你也是c語言的愛好者,那麼我建議你去c語言之家…

18樓:嚮往智慧型科技****

兩個單獨列出來都是 c=c+1

如果在 int c = ++a; // c為6, a為6

c = b++; // c 為 5!!!, b為6, b是在賦值語句結束後才+1的

// 等同於 c = b; ++b;

c++效率低, ++c效率高 (c++語言的話比較明顯, c語言區別很小)

19樓:匿名使用者

!是取反的意思!true得到false++c c++都是c自加1++有前,是先自加1後用c的值++在後是先用c的值後再加1

20樓:匿名使用者

++c是前置,c++是後置,前置就是把本次累加的結果立即賦給c,後置是本次運算c值暫時不變,下次再用到c時其值自增,,,

21樓:匿名使用者

您好,sa團隊給出的答案是!是邏輯運算子「邏輯非」,表示否定,如!=3就表示「不等於3」像++c c++是自加運算,++c表示「c+1」之後引用c;c++表示引用c後計算「c+1」

C語言中關於自加自減的問題,c語言中關於自加和自減的問題

在前,就是先自加後取值 在後,就是先取值後自加。看下面問題更清楚。問題1 迴圈第1次 判斷條件z 0,即先判斷3 0,然後z 1變成2判斷條件 x 5,即先x 1變成1,然後判斷1 5條件成立,執行迴圈體後,x 1,y 4,z 2迴圈第2次 判斷條件z 0,即先判斷2 0,然後z 1變成1判斷條件 ...

C語言的自增自減題目,c語言程式題目 自增自減

我的vs 2010執行時這樣的。首先編譯器在實現上述 時是這樣的 對於類似i 的操作,該操作在執行完其所在的那乙個語句後才進行i 1 的操作 上述語句編譯後應該是這樣的 p i i i i 1 i 1 i 1 對於類似 i的操作,該操作在執行完其所在的那乙個語句之前就進行i 1 的操作 上述語句編譯...

c語言自增自減的輸出問題,C語言自增自減的輸出問題

printf d n d n d n d n d n d n d n i,i,i,i,i,i i 右邊引數集i,i,i,i,i,i i 是從最右邊開始入棧的,也就是先執行最右邊的表示式。i 表示式的值為 i,也就是 8,然後i 使得i的值更新為7 i 此時i的值為7,表示式的值為 i,也就是 7,然...

c語言 自增,自減運算子,求解,C語言 自增,自減運算子,求解

計算的過程是取決於編譯器的。不同的編譯器得出的結果可能不同。這種題目就不應該用來考學生,根本沒有固定答案,不知道為什麼教c的老師總是會出這種題目。去來解釋一下 對於自增和自減計算,在不同的機器上因為解釋稍有不同,所以會得到不同的結果。在你的機器上得到15和22這樣的結果,你的機器是這樣計算的 1 p...

C語言自增運算,c語言邏輯運算子與自增自減運算子的雜糅運算

是自增運算子,k或k 都是讓變數k的值加1 是自減運算子,k或k 都是讓變數k減1。運算子位於運算元之前,稱為前置運算子 運算子位於運算元之後,稱為後置運算子。這兩種運算子的差異是 前置運算子是對變數先遞增 遞減 然後參與其他運算,即先改變變數的值後使用 後置運算子則是變數先參與其他運算,後對變數遞...