只需要记住一句话:
传值引用一般就是生成一个临时对象,而引用调用是调用参数本身。
参照下面C语言代码理解:
在 test.h文件里实现两个方法
#include <stdio.h>
/*交换两个数*/ void exchange(int x,int y){ int temp; temp = x; x = y; y = temp; printf("交换后第一个数:\n%d\n交换后第二个数:\n%d\n",x,y); } /*交换两个数的指针*/ void exchangeAddress(int *x,int *y){ int temp = *x; *x = *y; *y = temp; printf("交换后第一个数:\n%d\n交换后第二个数:\n%d\n",*x,*y); }
在 test.c文件里调用这两个方法如下:
#include <stdio.h> #include "test.h" int main(){ int a, b; printf("请输入a: \n"); scanf("%d",&a); printf("请输入b: \n"); scanf("%d",&b); exchange(a,b); printf("交换后:\n a=%d\n b=%d\n",a,b) ; exchangeAddress(&a,&b); printf("交换地址:\n a=%d\n b=%d\n",a,b) ; }
打印结果: