c語言的自增自減運算子的題,求思考過程

2021-08-13 22:28:43 字數 2009 閱讀 4233

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語言自增問題 關於c語言中自加自減的問題?

是這樣的,由於 有著最高的優先順序,第乙個 j,使得j 6 但是後面緊跟著的 j使j 7了,然後先進行乙個二元運算加法,得到結果14,然後再 j 從而得到的結果是22。在應用的過程中,最好不要使用,會歧義。你把整個 敲出來,這個q的值是21,除非在這個表示式前還有個 最好不要這樣使用自增,各版實現不...

C過載後置自增運算子把時間物件的秒數加1,返回原值

按照理解,24 60 60是轉化為0 60 60吧 後增一般是先用個臨時變數拷貝乙份 this,在本身自增1後 return這個臨時變數就好了吧。一般前置 返回的是time 後置的好像直接返回time就好,沒有引用。在c 中,用友元函式過載後置自增運算子時,其參數列中的引數個數為?乙個,在後遞增運算...

C語言中算數運算子,關係運算子,邏輯運算子的優先級別

1級優先順序 左結合 圓括號 下標運算子 指向結構體成員運算子 運算高於關係高於邏輯高於付值 去看一下教材,譚浩強 第三版 c語言的運算子的優先順序 邏輯運算子 條件運算子 賦值運算子 關係運算子 算術運算子。它們之間的優先順序 1 最高端 出現同級別運算子時的結合方向是從左往右 下面級別沒寫結合順...