【C语言】函数指针
【摘要】 【C语言】函数指针
🌀 函数指针
数组指针:是指向数组的指针。
函数指针:是指向函数的指针,存放函数地址的指针。
那么 & 地址函数名,取出的就是函数的地址。
从这里我们就联想到了 数组名 != &数组名,那么函数也是这样的吗?
答案:不是!函数名 == &函数名(完全等价)
示例,如下代码所示 👇
编译运行结果如下 👇
由此,证明了 函数名 == &函数名(完全等价)
那么指针所指向的类型就是函数返回值当中的类型。
当然,函数的地址也是可以取&出来,赋值给函数指针变量。
格式:函数返回值(*指针变量)(函数参数类型)
💥注意:这个函数指针变量是因为我们存放的地址是函数!
接着上面代码,示例,如下代码所示 👇
这里的 ptr 就是函数指针变量。
那么这里 ptr 相当于存放函数的地址,如果我对 ptr 进行解引用的话就相当于找到了函数的地址。而找到这个函数我们需要把 (*ptr) 用小括号给括起来。调用的时候进行传参,所以需要在后面给上。
示例,如下代码所示 👇
编译运行结果👉 ret = 8
从上述代码中可以说明调用时✔的,木的问题。这个地方用的就是函数指针,用了一个函数指针去调用它所指向的函数。
当然,你这样子也是和上面是等价的。
以及这样子也都是没有问题的,运行结果都是一样的。
函数指针的应用
拓展示例如下👇
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)