C语言中的函数指针学习笔记

现在为大家介绍一下“C语言中的函数指针学习笔记”的完整攻略。

什么是函数指针?

函数指针(Function Pointer)是指向函数的指针变量,也就是说,函数指针指向函数的入口地址。

函数指针的定义

函数指针的定义格式如下:

typedef int (*func_ptr)(int, int); // func_ptr是一个函数指针类型

上面代码定义了一个名为func_ptr的函数指针类型,它所指向的函数返回值类型为int,有两个整型参数。

函数指针的使用

函数指针的使用步骤如下:

  1. 定义函数指针变量;
  2. 将函数名赋给函数指针变量;
  3. 通过函数指针变量调用函数。

示例一:

#include <stdio.h>

int add(int a, int b)
{
    return a + b;
}

int main()
{
    int (*p)(int, int); // 定义函数指针变量
    p = add; // 将函数名赋给函数指针变量
    int sum = p(3, 5); // 通过函数指针变量调用函数
    printf("%d\n", sum);
    return 0;
}

示例二:

#include <stdio.h>

int add(int a, int b)
{
    return a + b;
}

int subtract(int a, int b)
{
    return a - b;
}

int operation(int a, int b, int (*p)(int, int))
{
    return p(a, b);
}

int main()
{
    int a = 3, b = 5;
    int sum = operation(a, b, add);
    int diff = operation(a, b, subtract);
    printf("sum = %d\ndiff = %d\n", sum, diff);
    return 0;
}

在示例一中,我们定义了一个函数指针变量p,并将add函数的地址赋给它,接着通过p调用了add函数,输出结果为8

在示例二中,我们定义了两个函数addsubtract,以及一个函数operation,这个函数接受两个整型参数和一个函数指针参数,用函数指针参数调用相应的函数,并返回函数执行的结果。在main函数中,我们调用了operation函数两次,分别传入了addsubtract函数的地址,输出结果为:

sum = 8
diff = -2

这就是函数指针的基本用法。

希望以上内容能够对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言中的函数指针学习笔记 - Python技术站

(0)
上一篇 2023年5月24日
下一篇 2023年5月24日

相关文章

  • linux vim 操作笔记

    Linux Vim 操作笔记 简介 Vim 是一款集文本编辑、文本格式化等为一体的强大编辑器,常用于 Linux 系统下进行文件的编辑和处理。本篇笔记主要介绍 Vim 的基本操作和常用功能,帮助初学者快速入门。 基本操作 打开文件 使用 Vim 打开文件可以直接在终端输入: vim 文件名 如果文件不存在,会自动新建一个空白文件。 退出 Vim 关闭正在编辑…

    C 2023年5月22日
    00
  • Json解析的方法小结

    以下是“Json解析的方法小结”的完整攻略: 什么是Json? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于JavaScript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。在数据交换时,Json更加方便快捷。 Json解析的方法 Json解析的方法有4种,分别是: 1. 基于JSON…

    C 2023年5月23日
    00
  • Json数据转换list对象实现思路及代码

    “Json数据转换list对象实现思路及代码”主要是指通过将Json格式的数据转换成List对象,方便对数据进行处理,以下是详细讲解这个过程所需的步骤和代码示例: 1. 引入相关依赖 在转换JSON数据的时候我们需要使用到相关包,通常使用依赖管理工具,比如 Maven / Gradle 来引入相关包,其中常用的包包括: jackson-databind: 提…

    C 2023年5月23日
    00
  • Xshell怎么设置Ctrl+C Ctrl+V快捷键为复制粘贴 Xshell6快捷键的设置教程

    下面是详细的攻略: Xshell怎么设置Ctrl+C Ctrl+V快捷键为复制粘贴 在Xshell中,复制和粘贴通常是使用右键菜单或者在菜单栏中通过选择菜单项来完成的。但是,你也可以通过在Xshell中设置Ctrl+C和Ctrl+V为复制和粘贴快捷键来提高操作效率。 打开Xshell,进入Session Properties。 选择你要进行设置的会话,并点击…

    C 2023年5月23日
    00
  • Python实现字典按key或者value进行排序操作示例【sorted】

    下面是Python实现字典按key或value进行排序的攻略: 1. 字典按key排序 如果你想按dict的key进行排序,可以使用Python的内置方法sorted()实现。下面是一个示例代码: d = {‘banana’: 3, ‘apple’: 4, ‘pear’: 1, ‘orange’: 2} sorted_dict = sorted(d.item…

    C 2023年5月23日
    00
  • C语言实现数独游戏

    C语言实现数独游戏攻略 介绍 数独是一种逻辑填数游戏,通过在九宫格中填入数字1-9,使得每行、每列、每个九宫格内的数字都没有重复。C语言可以实现数独游戏,并对玩家的答案进行检测。 步骤 1. 定义九宫格 首先需要定义一个二维数组来表示数独的九宫格。在C语言中,可以使用如下代码定义一个9×9的九宫格: int grid[9][9]; 2. 初始化九宫格 在定义…

    C 2023年5月23日
    00
  • C程序 打印半直角号码金字塔图案

    C程序 打印半直角号码金字塔图案 使用攻略 程序实现功能 本程序是用C语言实现打印半直角号码金字塔图案,可根据输入的行数打印出不同大小的金字塔图案,程序较为简单易懂,适合初学者学习练手。 使用攻略 本程序主要使用的控制语句是循环,包括for循环和while循环,同时也运用了条件判断语句和输出语句。以下是本程序代码的详细解析: 用户输入要打印的金字塔的行数(c…

    C 2023年5月9日
    00
  • C++中的friend函数详细解析

    C++中的friend函数详细解析 friend是C++语言中的一个关键字,用于在一个类中声明其它类或者函数成为友元,可以让友元类或者友元函数能够访问本类的私有成员。friend也是一个强大的功能,但是使用不当可能打破了类的封装性。 基本语法 在C++中,使用friend关键字声明一个友元类或者友元函数,例如: class MyClass{ private:…

    C 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部