1樓:憵潰曙汨
關於你上面那道題答案的解釋: 首先:我敢確認你的答案八成是抄錯了,因為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語言中,++放在前面和後面有什麼區別?
2樓:gta小雞
++在變數前:表示式的結果為變數的當前值+1++在變數後:表示式的結果為變數的當前值
例如有int a = 2,則表示式++a的值為3,表示式a++的值為2。
這兩個表示式求值完畢後,a的值均會變為3。
3樓:匿名使用者
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
4樓:運命に抗
++在前是先加1在運算, 在後面是先運算在加1例子如下。
int i=0;
printf("%d",++i);i加了1才給傳遞引數,所以輸出是1i=0;
printf("%d",i++)前傳遞引數,所以還是輸出原來的值是0printf("%d,i) 因為上面那句加了1所以 輸出是1
5樓:匿名使用者
舉個例子吧,
int x,y;
x=1;
y=x++;
執行y=x++後,y的值是1,x的值為2;若改成y=++x,執行後y的值為2,x的值為2.
總結說來就是++在前的話用的是加一後的值,++在後的話先用原值再加一。
6樓:董俊錕
分兩種情況
【1】 作為單獨的語句 i++; ++i; 沒區別【2】 在賦值輸出等語句中,++放在前面, 先自加,然後在做其他的操作語句
++放在後面則是 先執行其他的操作,後自加
c語言中的"++在前"和"++在後"的區別是什麼?
7樓:運命に抗
++在前是先加1在運算, 在後面是先運算在加1例子如下。
int i=0;
printf("%d",++i);i加了1才給傳遞引數,所以輸出是1i=0;
printf("%d",i++)前傳遞引數,所以還是輸出原來的值是0printf("%d,i) 因為上面那句加了1所以 輸出是1
在c語言中,++放在前面和後面有什麼區別?詳細解釋please
8樓:董俊錕
分兩種情況
【1】 作為單獨的語句 i++; ++i; 沒區別【2】 在賦值輸出等語句中,++放在前面, 先自加,然後在做其他的操作語句
++放在後面則是 先執行其他的操作,後自加
9樓:匿名使用者
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
10樓:醉夢清楓
單獨使用無區別
在式子中使用的話
sum+=++i;這個是先對i進行自增1,再加到sum上,等同於:i+=1;sum+=i;
sum+=i++;這個是先把i加到sum上,再把i進行自增1,等同於:sum+=i;i+=1;
11樓:匿名使用者
如果p = 0;if(++p)時,p先加1,再進行if判斷,結果為真;如果是if(p++),則先使用p進行判斷,再對p加1,即,結果為假,但是執行完成後,p都為1
12樓:匿名使用者
b = ++a;
在前面的,先執行自增,也就是a = a+1;執行完再運算本行其他操作,即b = a;
b = a++;
則先運算本行其他操作,b = a;再執行自增 a = a + 1;
ps:一般不推薦一個表示式內有多個++a或者a++,一般只有一個,或者沒有。多個自增在一起,有時候存在歧義,在不同編譯器可能會出現不同結果
13樓:妙趣衡生
++i,先執行自加
++i,後執行自加
比如:j=i++,就是j=i之後,i=i+1j=++i,就是i=i+1之後,j=i
14樓:匿名使用者
符號放在前面需要先+1再賦值,放在後面則剛剛相反即先賦值再+1
15樓:小不點
放在前面相當於先給本身賦值了再運算
後面是先運算了再加
16樓:
放在前面:運算前加,後面:運算後加
17樓:勿戀勿忘
++在前為前增 右邊的變數先自增再將變化後的變數值賦值給左邊的變數,後增先講右邊的變數的值賦給左邊,然後右邊的變數再自增
18樓:匿名使用者
i++簡單的說就是先用i的值再加一,++i是i的值先加一再用
*在前面和*在後面的區別c語言
19樓:匿名使用者
在前面表示取這個地址所指向的值,如果在運算元後面一般就表示乘法把。
20樓:匿名使用者
在前面表示這是一個指標,在後面表示乘號
c語言問題++和--放在變數前後區別
21樓:
在一個函式
內部說明的變數是內部變數,它只在該函式範圍內有效。 也就是說,只有在包含變數說明的函式內部,才能使用被說明的變數,在此函式之外就不能使用這些變數了。所以內部變數也稱「區域性變數」。
而外部變數 在函式外部定義的變數稱為外部變數。以此類推,在函式外部定義的陣列就稱為外部陣列。 外部變數不屬於任何一個函式,其作用域是:
從外部變數的定義位置開始,到本檔案結束為止。 外部變數可被作用域內的所有函式直接引用,所以外部變數又稱全域性變數。
c語言++放在前面和後面的區別分析
22樓:匿名使用者
++在前是先加1在運算, 在後面是先運算在加1 例子如下。 int i=0; printf("%d",++i);i加了1才給傳遞引數,所以輸出是1 i=0; printf("%d",i++)前傳遞引數,所以還是輸出原來的值是0 printf("%d,i) 因為上面那句加了1所以 輸出是1
23樓:
int main()
單獨一句,無區別;作為引數就有區別。
24樓:大大的輔導輔導
u表示該常數用無符號整型方式儲存,相當於unsigned int;l表示該常數用長整型方式儲存,相當於longf表示該常數用浮點方式儲存,相當於float
c語言感嘆號在前在後有區別?
25樓:匿名使用者
c語言中感嘆號在前表示取非,非真為假,非假為真,感嘆號沒有在後面吧,如果在後應該是和等號一起連用,比如a!=b表示a不等於b為真,否則為假,數學上如10!表示10的階乘,但在c語言中不能直接這麼用。
c語言 自加在前面和在後面有什麼區別
26樓:匿名使用者
在前面是該語句執行前就自加,後面是該語句執行完才自加
27樓:愛々勿々醉
i++表示先使用i的值,然後再++
比如a=i++
則表示a = i ; i++;
++i表示先讓i進行+1操作,然後再使用i比如a = ++i
則表示 i++; a = i;
28樓:ai看雪
看一下這個回答,我不想再敲一遍了
29樓:追夢追夢
++1執行後等於2
1++執行後等於1
c語言a與65的區別,C語言中a與a的區別是什麼?詳細一點,謝謝!
你這道題到底是想幹嘛?首先沒講明白程式的目的。看起來像是想進行大小寫轉換。看起來好像沒什麼錯誤。如果確實有錯誤的話,那估計是s字串沒有進行初始化。在gets之前加一句 memset s,0,sizeof s 檔案開頭加一句 include 哦!還有一個,是小寫字母的時候,要用減32,大寫字母的時候,...
c語言自加在前面和在後面有什麼區別
在前面是該語句執行前就自加,後面是該語句執行完才自加 i 表示先使用i的值,然後再 比如a i 則表示a i i i表示先讓i進行 1操作,然後再使用i比如a i 則表示 i a i 看一下這個回答,我不想再敲一遍了 1執行後等於2 1 執行後等於1 在c語言中,放在前面和後面有什麼區別?詳細解釋p...
c語言 內容如下,c語言中 與 的區別
因為如果沒有換行符號,這兩個printf在一行連續輸出 你在printf i am a computer n 加上一個換行符就可以讓這一句單獨一行了 求c語言 設計一個選單程式,包括3項內容如下,1 單日票 2 聯票 0 退出 include include void fun1 void void ...