|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
调用swap函数,交换主函数中变量x和y中的数据。
#include<stdio.h>
void swap(int *,int *);
main()
{
int x=30,y=20;
printf("(1)x=%d y=%d\n",x,y);
swap(&x,&y);
printf("(4)x=%d y=%d\n",x,y);
}
void swap(int *a,int *b)
{int t;
printf("(2)a=%d b=%d\n",*a,*b);
t=*a; *a=*b; *b=t;
printf("(3)a=%d b=%d\n",*a,*b);
}
运程序行结果如下:
(1)x=30 y=20
(2) a=30 b=20
(3) a=20 b=30
(4)x=20 y=30
为什么(4)的值会改变
通过传送地址的方式在被用函数中直接改变函数中的变量的值,我理解不了这句话,
假如你是按值传递参数的话,传入的将会是一个副本,你改副本的话,不会改本体。
但你要是按地址传递参数的话,传入的将会是一个地址,它不是副本,就是本体,
所以可以改本体。
|
|