首页后端开发ASP.NETC中如何声明指向函数的指针?

C中如何声明指向函数的指针?

时间2024-01-31 03:40:03发布访客分类ASP.NET浏览621
导读:收集整理的这篇文章主要介绍了C中如何声明指向函数的指针?,觉得挺不错的,现在分享给大家,也给大家做个参考。在C中,与普通数据指针(int *,char *等)一样,还可以声明指向函数的指针,即函数指针。那么如何声明?下面本篇文章就来带大家了...
收集整理的这篇文章主要介绍了C中如何声明指向函数的指针?,觉得挺不错的,现在分享给大家,也给大家做个参考。在C中,与普通数据指针(int *,char *等)一样,还可以声明指向函数的指针,即函数指针。那么如何声明?下面本篇文章就来带大家了解一下声明函数指针的方法,希望对大家有所帮助。【视频教程推荐:c语言教程】

如何声明指向函数的指针?

首先我们了解一下如何在C中创建一个指向整数的指针?

int * ptrInteger;
     / *我们在int和ptrInteger之间放置了一个*运算符来创建指针。* /

这里的ptrInteger就是一个指向整数的指针。如果可以理解这一点,那么从逻辑上讲,我们在声明指向函数的指针时应该没有任何问题了。

接下来让我们来看看如何声明一个函数?例如:

int foo(int);
    

这里的foo就是一个返回并接受一个int类型参数的函数。因此,逻辑上会被认为,只要在int和foo(int)之间放置一个*运算符就应该创建一个指向函数的指针,即:

int * foo(int);
    

但,这是不对的;因为,c运算符优先级在这里也起作用,运算符()将优先于运算符*。上面的声明意味着:一个函数foo,其中一个参数为int类型,返回值为int *即整数指针;这不是我们想要的,所以我们还需要考虑c运算符优先级。

因此,我们必须以某种方式将*运算符与foo绑定。为此,我们将使用()运算符来更改C运算符的默认优先级。例:

int (*foo)(int);
    

*运算符与foo一起使用,而foo是函数名,这样就声明来一个指向函数的指针了。

函数指针的使用示例:

#include stdio.h>
 // 具有int参数和void返回类型的普通函数void fun(int a) {
         PRintf("a值为: %d\n", a);
 }
   int main() {
         // fun_ptr 是指向函数fun()的指针    void (*fun_ptr)(int) = &
    fun;
           /* 相当于下面两行       void (*fun_ptr)(int);
            fun_ptr = &
    fun;
          */      //使用fun_ptr调用fun()    (*fun_ptr)(10);
           return 0;
 }
    

输出:

说明:

1、与普通指针不同,函数指针指向代码,而不是数据。通常,函数指针存储可执行代码的开始。

2、与普通指针不同,我们不使用函数指针分配解除分配内存。

3、在函数指针中,函数的名称也可用于获取函数的地址。

4、与普通数据指针一样,函数指针可以作为参数传递,也可以从函数返回。

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注相关教程栏目!!!

以上就是C中如何声明指向函数的指针?的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: C++中如何避免内存泄漏?下一篇:C/C++函数如何返回多个值?(代码...猜你在找的ASP.NET相关文章 C# 一些面试试题的实例教程2022-05-16.NET 6开发TodoList应用之请求日志组件HttpLogging介绍2022-04-16.NET 6中间件Http Logging使用介绍2022-04-16gojs一些实用的高级用法2022-04-16.NET6开发TodoList应用之实现查询排序2022-04-16.NET6开发TodoList应用之实现数据塑形2022-04-16.NET微服务架构CI/CD自动打包镜像2022-04-16Asp.Net Core 使用Monaco Editor 实现代码编辑器功能2022-04-16.NET微服务架构CI/CD自动构建Jenkins+Gitee2022-04-16.Net Core微服务网关Ocelot集成Consul2022-04-16 其他相关热搜词更多phpjavapython程序员loadpost-format-gallery

若转载请注明出处: C中如何声明指向函数的指针?
本文地址: https://pptw.com/jishu/593432.html
C/C++函数如何返回多个值?(代码示例) javascript中怎么将一维数组转为三维数组?方法介绍

游客 回复需填写必要信息