第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

這個自增運算實在搞不懂了,,,

#include?<stdio.h>
int?main()
{
????int?m,n,i=15,j=20;
	m=(i++)+(i++)+(i++);n=(--j)+(--j)+(--j);
	printf("i=%d,j=%d,m=%d,n=%d\n",i,j,m,n);
????return?0;
}

為啥m直為45而不是15+16+17=48,n值為53不是19+18+17=54、、

正在回答

6 回答

這算是化石級的經(jīng)典錯誤了...

第5行,這個兩個關(guān)于i和j表達式的行為是未定義的,不同編譯器也許會得出不同的結(jié)果。別去分析為什么會得出這個值或是那個值了,這種寫法根本就是個錯誤!

詳細的原因請看這里我的回答?http://idcbgp.cn/qadetail/87888

注意那個“序列點”的概念,你這個表達式的問題和我在那個帖子中解釋的一樣:在求m和n的這兩個語句中,你無法確定 i 和 j 都是什么值。

0 回復 有任何疑惑可以回復我~
#1

Backkom 提問者

非常感謝!
2015-10-21 回復 有任何疑惑可以回復我~

但是這個好像跟編譯器有關(guān)系,有的時候可能不太一樣,這個我忘了。。。。

0 回復 有任何疑惑可以回復我~
#1

Backkom 提問者

VC6.0,,,
2015-10-20 回復 有任何疑惑可以回復我~
#2

Jaydon_ 回復 Backkom 提問者

那你就按照我給你講的方法呀,嘿嘿,給個最佳回答>
2015-10-21 回復 有任何疑惑可以回復我~

嘿嘿,小兄弟,我告訴你一個方法,希望可以幫助你理解。


?int?m,n,i=15,j=20;

????m=(i++)+(i++)+(i++);n=(--j)+(--j)+(--j);

這邊i++相當于這樣

m=i+i+i; 15+15+15

i++;

i++;

i++;

而--j是相反的在表達式前面執(zhí)行相當于這樣

--j; j=19

--j; j=18?

--j; j=17

n=17+17+17;


0 回復 有任何疑惑可以回復我~
#1

Jaydon_

我覺得,我寫的比最佳回答好!?。。?!
2015-11-05 回復 有任何疑惑可以回復我~

所以,你最后求到的, i=16 , j =17

0 回復 有任何疑惑可以回復我~
#1

Backkom 提問者

程序運行結(jié)果i=18,j=17、、、、
2015-10-20 回復 有任何疑惑可以回復我~

表達式執(zhí)行完畢后 “a” 的值都自減少1。

0 回復 有任何疑惑可以回復我~
#1

menghuanbaolei

或者自增長
2015-10-20 回復 有任何疑惑可以回復我~

m = 15 + 15 + 15;

n = 19 + 17 + 16;

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926892    人
  • 解答問題       21441    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

這個自增運算實在搞不懂了,,,

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號