初学函数的时候,老师们总是强调,要想返回函数处理的结果,需要用到 return 语句,且只能返回一个值。有了指针,自由度增加了,可以不用 return 了,也可以方便地修改多个参数的值了。
一、初露峥嵘,修改一个实际参数的值
#include <stdio.h>
int f1(int a)
{
a=100;
return a;
}
void f2(int *a)
{
*a=999;
}
int main(void)
{
int x,y;
x=f1(x);
f2(&y);
printf("%d %d",x,y) ;
}
输出结果为:100 999
二、更进一步,修改多个实际参数的值:
#include <stdio.h>
void f3(int *a,int *b)
{
*a=888;
*b=999;
}
int main(void)
{
int x,y;
f3(&x,&y);
printf("%d %d",x,y) ;
}
输出结果为:888 999
阶段总结:
1、上述程序演示了指针作为函数参数的用法;
2、只是演示了语法,程序基本没有什么算法
三、实际应用
下面程序实现二数的交换:
void swap(int *a,int *b)
{
int t;
t=*a; *a=*b; *b=t;
}
int main(void)
{
int x=3,y=2;
swap(&x,&y);
printf("%d %d",x,y) ;
}
输出结果为: 2 3