i 4 j 3 k 1,為什麼kii printf k d n nk輸出 k

時間 2021-08-11 17:09:40

1樓:匿名使用者

k=i/++i;,按符號的優先順序,先計算++i,這時,i=5,再計算k=i/++i,分子分母都是5,所以答案是1

2樓:匿名使用者

這個和求值循序有關

c語法沒有規定運算子求值循序(除逗號運算子,邏輯運算子,條件運算子外),求值循序不同的編譯器是不一定相同的

所以表示式a+b,可以理解為a加上b,也可以理解為b加上a,一般情況下,兩者的結果是相同的,

但是如果是a+(++a),這種情況就會不同,比如說a初始值為0的話,理解為a加上++a的話,結果就是0+1=1 但是如果理解為(++a)加上a的話,就成了1+1=2

而lz使用的編譯器,正好是後者,所以理解為先++i然後 i / (++i)的結果

也就是2/2=1

總之這種東西是語法上未定義的東西,千萬不要寫這樣的**,這樣會降低移植性的,這樣的題一般也就會在一些nc的學校考題裡出現,我記得幾年前的ncre裡也出現過,這種nc題不做也罷,沒必要弄清

3樓:匿名使用者

當然是1

請問4/4不是1是什麼?

只是1樓說的對,不同編譯器可能答案不一樣。

4樓:騎士燕

我估計你的題目抄錯了吧,只有k=i/++j,k的結果才等於1,如果題目沒錯,那麼你的j是用來幹什麼的?

5樓:匿名使用者

在實際的開發中,要儘量避免這種寫法。不同的編譯器處理方式可能不同,是先計算分子,還是分母。

6樓:

k怎麼會輸出1?這個應該是0才對啊。。。

7樓:匿名使用者

k=i/++i最好分開寫,不要又歧義。否則不同編譯器,或編譯器開不同優化選項,結果都可能不同的。

8樓:匿名使用者

可能運算方向從右開始的吧,不然k=i/i++ 也等於1呢

K650D I7D3和K5 i78172D1哪個好點

你列舉的兩款神舟筆記本,從配置上來看,神舟k650d i7 d3和神舟戰神 k5 i78172d1都是英特爾i7 4710mq處理器,顯示卡也是一樣的,同為gtx950m,ddr3。兩者差價250元,論價效比的話,當然選擇神舟k5 i78172d1,雖然貴250元錢,但是多4gb記憶體和500gb硬...

神舟A470 i3D1能玩gta4嗎

gta4 主要看 顯示卡 顯示卡定位 中高階遊戲顯示卡 引數顯示卡型別 獨立顯示卡 顯示卡型號 ati mobility radeon hd5730視訊記憶體容量 1gb 2gb 視訊記憶體型別 ddr3 電晶體數量 627 百萬 核心尺寸 104 mm2 gpu 名稱 madison xt 匯流排...

for int i 1 i4 這句話為什麼等價於for int i 2 i5 i

xu筱莫 i 是後置運算子,表示i先參加運算在加一for int i 1 i 4 的執行順序是 i 1 i 4 i 1 由此可看出此語句等同於for int i 1 i 4 i 表示i執行三次迴圈 而for int 1 2 i 5 i i也是執行三次迴圈所以相互等價於 望採納! 聽不清啊 for i...