C语言关于函数指针总结,关于C语言中“指针函数”与“函数指针”的想法总结...

大家好!从今天起,我将把我对于C,C++学习中的一些总结体会以博客的形式变现出来。希望跟大家一起交流,指出我的不足和错误,一起进步。我要感谢近期来指导我的老师们,最近学到的东西,真的很多。好了,下面就开始吧。

关于C语言,指针那一块内容,我想会令很多人头疼吧。以前听人家说过这么一句话,“C语言行不行,就看你指针用的溜不溜。”的确,指针的用法很灵活,今天我要说的就是我对于“指针函数”与“函数指针”的一些体会总结。可能有没提到的,希望大家提醒。

1.“函数指针”

从它的字眼我们可以看出来,它是一个指针,指向一个函数。那么我们就疑惑了,指针指向函数是怎么实现的呢?

原来在一个程序运行过程中,函数代码执行算法指令,它也占据一定的内存空间。那么自然,它就会有相应地址。而我们的函数指针,其实,指向的就是这个函数的相应的首地址。这样,我们会自然而然的引出函数指针的赋值问题,下面以例子说明:

#include

int Add(int a,int b) //定义一个函数,求两个整形数之和

{

return a+b;//返回两数之和

}

int main()

{

int (*p)(int ,int) = NULL;//定义一个函数指针,函数返回类型为int型,形参为两个整型数

p = Add;//这里,我们将函数Add的首地址赋值给指针变量p

printf("a+b=%d\n",p(3,6));

return 0;

}

最后,运行结果为a+b=9;

至此我们可以发现,函数指针调用函数,其实就是通过指针指向函数首地址调用函数的。定义函数指针的一般格式为:

函数类型(*指针变量名)(形参列表);

2.“指针函数”

还是一样,从字面义上看,它是一个函数。而“指针”是指这个函数的返回是指针类型。

接上面说的“函数指针”,指针函数一般格式为:

类型标识符    *函数名(参数表)

举个使用指针函数的简单例子:

#include

char *Show(char str[2])//定义的指针函数

{

str[0]='a';//把数组首元素设置为字符a

return(str);//返回值

}

int main()

{

char str[2];

gets(str);

printf("%s\n",Show(str));

return 0;

}

结果实现:输入c,d

输出结果为a,d

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值