导航号,我的单页导航
文章目录

前言

C语言中,除了数组指针指针数组,还有指针函数函数指针

很绕,容易记错!因此记录一下,方便自己查阅!

正文

指针函数

指针函数是一个函数的返回值为地址的函数。

返回值为指针类型的一个函数

一般格式:

数据类型 * 函数名(形参){
    语句:
}

比如

char name[] = "@站长";

char* getName() {
    return name;
}

本质就是函数!

函数指针

函数指针用来存放函数的地址,这个地址就是函数入口的地址。函数名就是代表函数的入口地址!

一般定义形式:

数据类型 (* 函数指针名称) (参数说明表);

规则

  1. 数据类型 : 是函指针所指向的函数返回值类型

  2. 参数说明表 : 与函数指针缩指向的形参说明表保持一致

# 定义
int (*fun_sum)(int x, int y);

int sum(int x, int y){
    return x+y;
}

# 指向sum地址
# 可看成给sum函数找新代理名为fun_sum
fun_sum = sum;

小结

1. [指针函数]]是个函数,返回类型为指针
2. [函数指针]是个指针,用于指向函数地址的
3. 如果函数名前的指针*被括号()包含,就是函数指针;反之,是指针函数

PS:我的理解,完全可以看后面名称。

如果后面的是指针,那就是指针类型,也就可以指向地址。

如果后面的是函数(或数组),那就是返回类型或存储类型是指针。

参考文章

© 版权声明
导航号,我的单页导航

暂无评论

暂无评论...