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列印位址,列印指標,指標就是用來存放位址的 位址需要符號麼...