函数类型和函数指针

简介: 函数类型和函数指针

前言

本文将给大家带来函数类型和函数指针的使用方法以及概念介绍。

一、函数类型

1.函数类型概念

函数类型可能很多人都不是很清楚,大家都只知道变量有类型,但是却没有听过函数的类型。

C语言中的函数有自己特定的类型


2.函数类型的判断

函数类型由返回值,参数类型和参数个数共同决定。

函数int fun(int a)的函数类型为 int(int a)

函数float fun(int a)的函数类型为float(int a)

二、函数指针

函数指针顾名思义就是一个指向函数的指针,和其他类型的指针其实没有什么区别,只不过是指向的类型不同而已。

函数名是执行函数体的入口地址。

通过函数指针可以得到函数的入口地址,所以通过函数指针就可以调用到对应的函数了。


三、函数指针的使用方法

示例:

#include <stdio.h>
typedef int(FUNC)(int, int);
int fun(int a, int b)
{
    return a + b;
}
int main(void)
{
    int (*p)(int i, int j);
    FUNC *p1 = fun;
    p = fun;
    printf("%p\n", p);
    p(1,2);
    p1(3, 4);
    return 0;
}

可以通过函数指针指向函数,调用函数指针时跟函数的调用是类似的。直接使用指针名就可以调用到函数了。

总结

函数指针其实和普通的指针是一样的,只是指向不同而已,大家不用害怕。

相关文章
|
27天前
|
机器学习/深度学习 搜索推荐 算法
【再识C进阶2(下)】详细介绍指针的进阶——利用冒泡排序算法模拟实现qsort函数,以及一下习题和指针笔试题
【再识C进阶2(下)】详细介绍指针的进阶——利用冒泡排序算法模拟实现qsort函数,以及一下习题和指针笔试题
|
6天前
|
编译器 C++
函数指针和函数对象不是同一类型怎么替换
函数指针和函数对象不是同一类型,为何可替换用作同一函数的参数
|
6天前
|
存储 C语言
C语言的函数返回值和指针
C|函数返回值(区分各类值)和指针(区分各类存储空间)的细节
|
2天前
|
Java 程序员 Linux
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
10 0
|
24天前
|
存储 C语言
C语言学习记录——7000+字长文-复习&学习指针(指针、地址、指针变量、指针与数组、指针与函数、指针数组、多级指针)二
C语言学习记录——7000+字长文-复习&学习指针(指针、地址、指针变量、指针与数组、指针与函数、指针数组、多级指针)二
17 1
|
24天前
|
存储 C语言
C语言学习记录——7000+字长文-复习&学习指针(指针、地址、指针变量、指针与数组、指针与函数、指针数组、多级指针)一
C语言学习记录——7000+字长文-复习&学习指针(指针、地址、指针变量、指针与数组、指针与函数、指针数组、多级指针)一
15 1
|
3天前
|
C语言
C语言中的函数指针、指针函数与函数回调
C语言中的函数指针、指针函数与函数回调
6 0
|
4天前
|
图形学 Windows
程序技术好文:记录类型指针
程序技术好文:记录类型指针
|
19天前
|
JSON Go 数据格式
Go 语言基础之指针、复合类型【数组、切片、指针、map、struct】(4)
Go 语言基础之指针、复合类型【数组、切片、指针、map、struct】
|
19天前
|
Java 编译器 Go
Go 语言基础之指针、复合类型【数组、切片、指针、map、struct】(3)
Go 语言基础之指针、复合类型【数组、切片、指针、map、struct】