※ 引述《ast.bbs@pitch.twbbs.org (.....)》之銘言:
> ※ 引述《visor.bbs@bbs.yzu.edu.tw (再混,就當掉 ~)》之銘言:
> > *n = --*n + --*n + --*n;
> > 要看成
> > *n = (--*n + --*n) + --*n;
> > tmp = --*n + --*n;
> > *n = tmp + --*n;
> > 再來
> > --*n;
> > --*n;
> > tmp = *n + *n;
> > --*n;
> > *n = tmp + *n;
> >
> 天啊~這實在是太複雜了~~~~~遇到這種考題
> 應該要放棄了~~~@@"
> 引言
> 太
> 多
其實你問的問題已經牽涉到各家 compiler 如何實作的問題了.....
類似之前那段
int i;
int *n=&i;
*n = 12;
*n = --*n + --*n + --*n;
cout<<*n<<endl;
我用不同的開發工具所附的編譯器來編譯,執行的結果也不見得一樣
g++ :29
VC6 :29
VC.NET :27
BCB6 :30
至於到底為什麼
前面也有人提到,直接去看看翻譯出來的組語最清楚了..
--
@, ●秘密情人● (bbs.cse.ttu.edu.tw)
~\ ◆ Post From: 61-70-137-117.adsl.static.giga.net.tw ◆
+ Modify: 2005/01/04 Tue 21:19:07