【摘要】:函数的参数不仅可以是整型、实型、字符型等普通变量,还可以是指针变量。指针变量作为函数参数可以将一个变量的地址传送到另一个函数中。定义一个函数,用来交换两个值。main函数中调用swap()函数时,以变量x和y作为实参。
函数的参数不仅可以是整型、实型、字符型等普通变量,还可以是指针变量。指针变量作为函数参数可以将一个变量的地址传送到另一个函数中。
【例7.23】定义一个函数,用来交换两个值。
程序内容如下:
1 #include<stdio.h>
2 void swap(int*p,int*q)
3 {
4 int t;
5 t=*p;
6 *p=*q;
7 *q=t;
8 }
9 void main()(www.xing528.com)
10 {
11 int x=1,y=2;
12 printf("交换前x=%d,y=%d\n",x,y);
13 swap(&x,&y);
14 printf("交换后x=%d,y=%d\n",x,y);
15 }
程序结果如图7.29所示:
图7.29 例7.23程序结果图
【例题中关键问题说明】
程序中swap函数的作用是通过中间变量t,实现p和q之间的交换。main函数中调用swap()函数时,以变量x和y作为实参。从运行结果看并没有实现变量x和y之间值的交换。这是因为调用swap()函数时,是以单向传递的方式进行函数的参数的传递,即将变量x和y的值分别传递给对应的变量p和q,函数swap()执行后,函数中的变量p和q之间值被交换,但变量x和y与p和q都使用各自的存储空间,所以p和q的改变对x和y没有影响。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。