指针在函数中的应用
在c语言中,实参与形参的数据传递是单向传递的,只能由实参传给形参,不能由形参传递给实参。形参的值如果发生改变,并不会改变主调函数的实参的值。但利用指针可以把形参的的值赋予给实参。
我们先不用指针,验证形参是否会影响实参
#include <stdio.h>
int main()
{
int a=1;
int z(int a); //定义函数
z(a);
printf("a=%d",a);
}
int z(int a)
{
int b=2;
a=b;
return a;
}
上述的输出结果是a=1,事实证明形参用此方法不会影响实参。
利用指针
#include <stdio.h>
int main()
{
int a=1;
int z(int *a); //定义一个带有指针的函数
int *p; //定义一个指针,并把a的地址存给*p
p=&a;
z(p); //调用该指针
printf("a=%d",a);
}
int z(int *a)
{
int b=2;
*a=b;
}
上述输出结果是a=2,事实证明在函数中调用指针,形参会影响实参。