C語言裡自加和自減 放變數前和變數後有什麼不同作用啊

2021-03-28 22:52:07 字數 2380 閱讀 9255

1樓:匿名使用者

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

改變變數 i 的值

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

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

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

2樓:匿名使用者

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

3樓:匿名使用者

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

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

4樓:匿名使用者

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

int b = i++;

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

如果是b=++i

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

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

不知道我說的清楚不

5樓:du瓶邪

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

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

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

6樓:匿名使用者

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

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

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

7樓:gta小雞

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

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

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

8樓:匿名使用者

++(或--)在前面就是先自增(或自減)1然後在運算。放在後面就是先完成後面運算再自增(或自減)1。

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

9樓:gta小雞

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

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

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

10樓:匿名使用者

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

11樓:運命に抗

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

int i=0;

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

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

12樓:董俊錕

分兩種情況

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

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

c語言關於自增自減的問題,C語言裡關於自增自減運算子的問題

計算 從右往左,並輸出到 緩衝區 2.緩衝區是一堆疊 3.第一步 處理後面的 i 8進入緩衝區,i 7。緩衝區 8 指標 第二步 處理 i 7進入緩衝區,i 8。緩衝區 7 8 第三步 處理 i 8進入緩衝區,i 7.緩衝區 8 7 8第四步 處理 i 先自增1,然後8進入緩衝區,i 8 緩衝區 8...

C語言中「指標變數P自增1」是什麼意思

自增就是 1的意思,地址 1就是指向下一個元素。例如int array 3 int p array 此時p指向array 0 p 這裡的p自增,執行後p指向array 1 計算機c語言中 指標變數p自增1 什麼意思 自增就是 1的意思,地址 1就是指向下一個元素。例如int array 3 int ...

C語言規定,呼叫函式時,實參變數和形參變數之間的資料傳遞方式是什麼

函式只有兩種傳遞方式 1 值傳遞,又稱單向傳遞,只能把實引數值傳給形參 形參最後的結果不影響實參 形參改變大小 實參大小不變 2 址傳遞,通過指標,把實參的地址給形參,形參的大小可以影響實參。看到很多都說是值傳遞,本人認為只能由使用者指定傳遞方式。在c語言中,軌道引數傳遞方式有兩種 其實還有引用傳遞...