在C語言中放在前面和後面有什麼區別

2021-03-22 18:17:56 字數 5244 閱讀 9821

1樓:gta小雞

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

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

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

2樓:匿名使用者

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

3樓:運命に抗

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

int i=0;

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

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

4樓:董俊錕

分兩種情況

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

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

在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樓:gta小雞

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

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

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

17樓:匿名使用者

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

c語言++放在前面和後面的區別分析

18樓:匿名使用者

++在前是先加1在運算, 在後面是先運算在加1 例子如下。 int i=0; printf("%d",++i);i加了1才給傳遞引數,所以輸出是1 i=0; printf("%d",i++)前傳遞引數,所以還是輸出原來的值是0 printf("%d,i) 因為上面那句加了1所以 輸出是1

19樓:

int main()

單獨一句,無區別;作為引數就有區別。

20樓:大大的輔導輔導

u表示該常數用無符號整型方式儲存,相當於unsigned int;l表示該常數用長整型方式儲存,相當於longf表示該常數用浮點方式儲存,相當於float

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

21樓:運命に抗

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

int i=0;

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

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

在c語言裡++在前與在後的區別?

22樓:憵潰曙汨

關於你上面那道題答案的解釋: 首先:我敢確認你的答案八成是抄錯了,因為p的值應為6。

第二點:++不管在前在後都只能讓i自增1。 那麼下面我們來將你那個例子改一下:

int p,i=2; p=i+(++i+(i++))+i;//上式你說現在的p和i分別是多少呢?答案:i=4;p=12; 首先i=4,說明i之前只增加了2次,即++i和i++ 第二點:

p=12而你上面p=++i+(i++)(p=6),只不過多加了二個i而p值就增加了一倍。我這時想會不會和加的i順序有關結果我將i放了好幾個不同的位置,可結果都一樣。 最後一次我將它這樣放置:

p=++i+(i++)+i+i=12與p=++i+(i++)=6 比較得出這時的i為3,最後的輸出i為4.這樣規律就出來了 結論:首先++、--的執行單位是以乙個;結尾的語句,當算表示式時首先算裡面帶有的(i)++(i)、(i)--(i)的表示式,得出當前的i值(如果運算子在前就先將i的值改變,如果i在後就先不改變i的值,等到以乙個;結尾的本條語句執行完後再將i的改變),將最後得出i值全部賦給表示式中的i,最後再按運算子的結合性做運算。

如: int p,i=2; int p=i+(++i)+i++; //首先算i值,在這一句:++i---->i=3,i++---->i=3(i不改變) //再將i值用i=3替換掉:

即p=3+3+3; //再做運算將p算出:p=9; //這句執行完後再將i+1--->i=4

在c語言的檔案中,像r,w,a,r+,w+,a+分別是什麼意思,前面三者與後面三者有什麼區別嗎?

23樓:雲盤雲存

r 開啟唯讀檔案,該檔案必須存在。

r+ 開啟可讀寫復的檔案,該檔案必須存在。

w 開啟只寫檔案,若檔案存在則檔案長度清為0,即制該檔案內容會消失。若檔案不存在則建立該檔案。

w+ 開啟可讀寫檔案,若檔案存在則檔案長度清為零,即該檔案內容會消失。若檔案不存在則建立百該檔案。

a 以附加的方式開啟只寫檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾,即檔案原先的內容會被保留。

a+ 以附加方式開啟可讀寫的文度件。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾後,即檔案原先的內容會被保留。

24樓:匿名使用者

r是唯讀,檔案已存在,指標在檔案頭;r+是讀寫方式,讀寫指標都在檔案頭。w是只寫方式,w+是讀寫方式建立新檔案,讀指標在檔案頭。a是追加方式開啟檔案,指標指向檔案尾;a+是讀寫方式開啟檔案,讀從檔案開始,寫從檔案尾開始。

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

25樓:匿名使用者

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

改變變數 i 的值

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

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

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

26樓:匿名使用者

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

27樓:匿名使用者

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

C語言中,怎樣在switchcase後面呼叫函式

include void test1 void test2 void test3 void test4 void test5 int main return 0 c語言中,如何在switch case後面呼叫函式,一共5個case,都要用函式的呼叫 include void test1 void t...

在C語言中,for語句的後面加分號和不加分號有何不同

for迴圈後面加分號,表示這個迴圈是空語句,除了執行for 括號裡的,什麼都不幹。然後就執行下一行,也就是你的prinf,printf和for迴圈沒關係。如果不加分號,那for迴圈後面的printf語句就是for迴圈的一部分,跟著for一起執行,但前提是for迴圈裡的條件要滿足。執行到第二個for時...

在c語言中pd和x的區別,在c語言中p,d和x的區別是什麼?

x不要前導0,也就說前面的0會被自動去掉也可以用 08x列印出來跟 p一樣的 實際上是一樣的,不過 p是專用來處理指標的吧,而 x對列印的資料都可以,感覺差不多,就是用 p的時候列印出來都是8個資料的 計算機儲存的都是2進製,當然也可以用 d列印位址,列印指標,指標就是用來存放位址的 位址需要符號麼...