指针参数
指针参数:指针参数使得被调用的函数能够访问和修改主调函数中对象的值。
由于C语言是以传值的方式将参数的值传递给被调用函数,因此,被调用函数不能直接修改主调函数中变量的值。
例如下面swap交换函数如果被定义为如下形式,则该函数将无法达到目的。
因为参数传递采用的是传值方式,因此swap函数不会影响到调用它的例程中的x与y的值,该函数仅仅改变了x与y的副本的值。
#include <stdio.h>
void swap(int a, int b);
int main(void)
{
int x=1,y=3;
swap(x,y);
printf("x的值为:%d, y的值为:%d\n",x,y);
return 0;
}
/*swap交换函数*/
void swap(int a, int b)
{
int temp;
temp = a;
a = b;
b = temp;
}
为了实现目的,需要用到指针来修改变量的地址。
指针参数使得被调用的函数能够访问和修改主调函数中对象的值。
用&来取变量的地址,在函数中利用指针将两个参数所指向的地址进行交换,其对应的值也就自然交换了。
如下例
#include <stdio.h>
void swap(int *a, int *b);
int main(void)
{
int x=1,y=3;
swap(&x,&y);
printf("x的值为:%d, y的值为:%d\n",x,y);
return 0;
}
/*swap交换函数*/
void swap(int *a,int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}