瀏覽單個文章
m5a8258
Major Member
 
m5a8258的大頭照
 

加入日期: Apr 2001
您的住址: 藍色星球
文章: 223
引用:
作者isamuplus
P函式宣告了一個新的Long L,表示函式內的這個L和函式外的L並不是同一個
變數,所以當L = X + 1的時候,函式內的L就被初始化而有值。

但是Q函式裡面宣告了一個新的Long K,沒給初值而且又有K=K+1這種運算敘
述,到底是哪個天才寫出來的程式...?


92年 交大科管所 碩士考題..

先不管那個K=K+1囉
我比較好奇的是
這行印出ans=Q(L); printf("%3d%3d%3d\n",ans,K,L);
而是使用call by reference的下面程式碼
long Q(long& X){
long K; L=X+1; K=K+1
return L+(X++);
同學A說: X的記憶體空間應該跟L使用相同一個
而(X++)先被執行..所以X+1之後把值回寫到記憶體中.
但因為X與L使用相同記憶體空間.所以L+X=8.回傳給ans=8
同學B說: L先取得L=X+1的值.因此L的空間裡面的值為2+1=3
然後在執行X++.此時X與L使用相同記憶體空間.因此X=4
所以L+X為7
究竟是哪個正確呢?????
     
      
__________________
My Blog
http://www.chengwei.idv.tw
舊 2005-11-19, 10:46 AM #11
回應時引用此文章
m5a8258離線中