我试图弄清楚这样的代码的输出是什么。顺便说一句,这不是一个真正的问题,一种理论问题,我的意思是它不是原始的 C 代码,它是一种具有 C 代码语法并按名称参数传递范例的 PL。
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) 部分的逻辑解决方案 有谁知道我该如何处理这部分?
提前致谢!
最佳答案
tswap(++x,++y)
等同于:
++x;
++y;
tswap(x,y);
制作输出:
4 12 4 11
4 11 4
12 5 12 13
12 13 4
关于c - 具有 passByName 参数传递范例的函数的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15890555/