1樓:匿名使用者
i++是先使用i的值,再對i進行加1操作.
所以在p=(i++)+(i++)+(i++)裡面在計算p的值之前,i本身的值總是5.
所以p的值就是3個5所以是15.在運算完p之後,因為有3個i++,所以i做了3次自加運算,所以i最終是8.
q的變化同理.
所以最終列印結果是 15,15,8,8
2樓:匿名使用者
你的問題我覺得涉及到對自增運算子的理解,++i意味著“立即自增i”,而i++則意味著“現在先用i的原值,稍後再自增i”,這個稍後應該理解為是在下一條語句執行前i將進行自增。
所以結果是15,15,8,8
3樓:行程21公里
++i i自增1後再參與其它運算。
--i i自減1後再參與其它運算。
i++ i參與運算後,i的值再自增1。
i-- i參與運算後,i的值再自減1。
結果很明顯15,15,8,8
希望採納
4樓:百將帥先行
誰會真正的把**寫成這樣,大學教的相當扯淡
5樓:
在不同的編譯器中可能有不同的處理行為,在發vc7中
p=(i++)+(i++)+(i++); 等效於 p = i + i + i; i++, i++, i++;
6樓:匿名使用者
這個沒有標準答案,在一個語句中,一個變數有多次自增自減並且用於賦值或比較,在不同編譯器下工作是不同的
7樓:匿名使用者
首先p=i+i+i,所以結果為15,再i自加,結果為8.p也一樣
8樓:bd守候幸福
#include
void main()
關於c語言中自增自減運算子的問題。
9樓:搬紅磚的小男孩
從右來邊開始看, i++或i--的效自果不會馬上改變i的值,要等到執行下一個語句才改變。而已++i或--i會馬上改變i的值。
#include
int main()
給你舉個簡單的例子。
10樓:匿名使用者
你算得沒有問題,只是編譯器的讀入函式引數是從右側開始讀取入棧的,這樣你再算一下就沒有問題了。
11樓:匿名使用者
連續輸出的時候,c的編譯器一般是從右向左進行編譯,也就是從最右邊的先進行計算,最後是最左邊的。所以是這個結果
12樓:莫紫欣
你寫在一起了,把%d這部分用空格隔開試試
c語言中自增自減運算子的運算次序?
13樓:匿名使用者
a=a++;
b=++b;
如下圖紅框中所示(gcc編譯時告警),上述兩種用法對編譯器來說是無定義的,
回即是說c語言標準答中沒有規定該怎麼處理,因為實踐過程中也沒人這麼用。
既然沒有標準,又不能說是語法錯誤,那就依賴編譯器實現。a編譯器實現可以讓a = 5,b編譯器實現也可以讓a = 6。因此,在實際專案中,不要寫這樣的語句。
14樓:荌繎丶誑嘢菰漃
後置遞增遞減運
算符,將運算元遞增或遞減1,再將運算元的原值返回,專也就是說有一個臨時
屬變數用來存放原來的值,在完成遞增或遞減操作後,將臨時變數返回。
前置和後置區別就在這,前置返回的是新值,後置返回的是舊值。
15樓:心飛翔
i++是先抄使用i的值,再對i進行加1操作.
所以在p=(i++)+(i++)+(i++)裡面在計算p的值之前,i本身的值總是5.
所以p的值就是3個5所以是15.在運算完p之後,因為有3個i++,所以i做了3次自加運算,所以i最終是8.
q的變化同理.
所以最終列印結果是 15,15,8,8
C語言中增1減1運算子,c語言關於自增自減運算子的一個問題
自增 和自減 操作符為物件加1或減1操作提供了方便簡短的實現方式。它們有前置和後置兩種使用形式。i 等同於 i i 1。和 既可寫在變數之前,稱為前置運算,如 a a 和 也可以寫在變數之後,稱為後置運算,如 a a 對單獨一個變數實行前置運算或後置運算,其結果是相同的,都是使該變數的值增加或減少1...
計算機二級C語言關於自加自減運算子的問題
是這樣的,m 在後面就先引用 這裡是引用輸出 然後再自加,m,就相反了,要先自加,然後再引用。比如 int m 2 a m 就是先把m 2賦值給a,然後再m自加。而如果是a m,就是先m 1,然後把3賦給a。你上面那個printf d d m n 就是先輸出m 12 然後m m 1 13,先n n ...
C語言中的運算子條件運算子運算過程的講解
z x 1 y 1,y x 5 x 7,y 3 這句主要的有 du2個運zhi算符 dao,一個條件運算子 一個賦內值運算子 z 優先順序是條件運算子比容較高,可以轉換成 z x 1 y 1,y x 5 x 7,y 3 條件運算子 計算 前面表示式,為真返回冒號前面的,為假返回冒號後面的。因為 x ...