2013-04-08 41 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 
相关问题