初學函數的時候,老師們總是強調,要想返回函數處理的結果,需要用到 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