2013-04-08 77 views
-2

我試圖找出這樣的代碼的輸出是什麼。順便說一下,它不是一個真正的問題,有種問題,我的意思是不是原始的c代碼,它是一種具有c代碼語法並通過名稱參數範例傳遞的PL。輸出一個函數,它具有passByName參數傳遞範例

int x=12,y=10; 
void tswap(int pa, int pb) { 
int tmp; 
tmp=pa; 
pa=pb; 
pb=tmp; 
x=x+pa; 
x=x-pb; 
y++; 
printf("%d %d %d %d\n",pa,pb,x,y); 
} 

int main() { 
int a=4; 
tswap(x,a); 
printf("%d %d %d\n",x,y,a); 
tswap(++x,++y); 
printf("%d %d %d\n",x,y,a); 
return 0; 
} 

我認爲第一部分的輸出應該是:

-4 12 -4 11 
-4 11 12 

但我能找到的部分tswap(++ x,+ Y) 一個合理的解決方案是否有任何人誰可以知道如何處理這部分?

在此先感謝!

+1

這是如何不同你剛纔的問題? http://stackoverflow.com/questions/15866828/output-of-a-c-code-like-with-call-by-reference – 2013-04-08 23:05:44

+0

@OliCharlesworth你可以看到我不知道代碼的輸出情況下的callByName範例 – 2013-04-08 23:06:51

回答

1
tswap(++x,++y) 

是一樣的:

++x; 
++y; 
tswap(x,y); 

使您的輸出:

4 12 4 11 
4 11 4 
12 5 12 13 
12 13 4 
相關問題