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。運算子位於運算元之前,稱為前置運算子 運算子位於運算元之後,稱為後置運算子。這兩種運算子的差異是 前置運算子是對變數先遞增 遞減 然後參與其他運算,即先改變變數的值後使用 後置運算子則是變數先參與其他運算,後對變數遞...