Online Compiler C

#include <stdio.h> void Swap(int x,int y){ int z=0; z=x,x=y,y=z;} void Swap2(int* px,int* py){ int z=0; z= *px,*px= *py,*py=z; } int main() { int a=0; int b=0; scanf("%d%d",&a,&b); Swap2(a,b); printf("%d %d",a,b); return 0; }
1) 这段代码定义了两个交换函数:Swap通过值传递参数(无法真正交换),Swap2通过指针传递参数(可以真正交换)。主函数中试图用Swap2交换两个变量的值,但调用方式有误。

2) 提示:
- 注意Swap2函数的参数类型是指针,调用时需要传递变量的地址(使用&运算符)
- 比较Swap和Swap2的参数传递方式,思考为什么Swap无法真正交换变量的值