c语言函数指针形参 c语言指针做形参( 二 )


{
printf("this is swapchar2");
}
int main(void)
【c语言函数指针形参 c语言指针做形参】 {
char chf = 'a', chg = 'j';
void(*p)(char * a, char * b);//定义函数指针、形参名字a、b可有可无,但有的话看上去更清晰,只要函数定义的类型、参数类型、以及参数个数,与这个指针一致,那么这个指针p,就可以指向它
p = swapchar;//p指针接管swapchar函数,只要给函数名字,就可以给过去了
printf("chf=%c,chg=%c ", chf, chg);
p(chf, chg);
printf("chf=%c,chg=%c ", chf, chg);
p = swapchar2;//这里把swapchar2函数的地址,给了p,这时p从swapchar地址,转移到了swapchar2这里 。
p(chf,chg);
return 0;
}
C语言中当形参是指针,实参是什么?当实参是指针,形参是什么?为什么?第一个问题:
形参是指针,实参就应该是对应数据类型的地址 。
例如:
swap(int *x,int *y)
{
int t ;
t = *x;
*x = *y;
*y = t;
}
int main()
{
int a = 2,b=6;
swap(a,b);
//因为swap函数的形参是int类型的指针,所以传入的实参应该是int类型变量的地址
return 0;
}
第二个问题:
当实参是指针的时候,形参应该是什么?
其实很简单,你只要把
第一问列出来①实参:地址②形参 :指针
一一对应出来①实参:指针②形参:指针的指针
因为你要在局部函数中改变实参,就需要传递它的地址 , 指针也是如此,把它类比为int型变量就好了 。
个人理解,希望能帮到你,如有不对,欢迎指正
关于c语言函数指针形参和c语言指针做形参的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读