C语言之指针函数和函数指针

C  2023年8月25日 am8:08发布1年前 (2023)更新 城堡大人
128 0 0

前言

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:我的理解,完全可以看后面名称。

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

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

参考文章

 历史上的今天

  1. 2019: Windows软件开机多个(0条评论)
版权声明 1、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

叔本华:只有经过深思的东西才能成为真知

哪怕是藏书最丰的图书馆,如果书籍放置混乱的话,其实际用处也不及一个收藏不多、但却整理得有条有理的小图书室。同样,大量的知识如果未经自己思想的细心加工处理,其价值也远远逊色于数量更少、但却经过头脑多方反复斟酌的知识。这是因为只有通过把每一真实的知识相互比较,把我们的所知从各个方面和角度融会贯通以后,我...

[摘]Android判断顶部Activity的包名等

前言本文摘抄,具体来源看末尾连接,记录于此。好记性不如烂笔头。小结在实际中,发现使用[获取顶层Activity]的第一个方式存在问题,偶尔获取的顶层activity是错误的。正文判断当前是不是桌面 public static boolean isHome(Context con...

[代码片段]自定义TextImageView

前言记录一下TextImageView的自定义。ImageView是不支持显示text的,虽然ImageView+TextView组合可以解决,但有时候只想一个View解决,因此就自定义一下。正文隐藏内容!付费阅读后才能查看!¥2 ¥3多个隐藏块只需支付一次付费阅读参考文章《Andr...

蒙田:热爱生命

我对某些词语赋予特殊的含义,拿“度日”来说吧,天色不佳,令人不快的时候,我将“度日”看成是“消磨光阴”。而风和日丽的时候,我却不愿意去“度”,这时候我是在慢慢赏玩,领略美好的时光。坏日子,要飞快“度”过去!好日子,要停下来细细品尝。“度日”和“消磨时光”的常用语令人想起那些“哲人”的习气。他们以为...

Android系统切换语言后,Activity中的文本没有改变

前言切换语言后,项目中的APP中的文本没有根据系统的语言改变而改变。这个是个小问题,但还是记录一下,方便自己查阅。正文隐藏内容!付费阅读后才能查看!¥1 ¥3多个隐藏块只需支付一次付费阅读参考文章《[摘]切换多国语言导致Fragment被回收,出现切换错乱》

郑愁予:生命

滑落过长空的下坡,我是熄了灯的流星。正乘夜雨的微凉,赶一程赴赌的路。待投掷的生命如雨点,在湖上激起一夜的迷雾。够了,生命如此的短,竟短得如此的华美!偶然间,我是胜了,造物自迷於锦绣的设局。毕竟是日子如针,曳着先浓後淡的彩线;起落的拾指之间,反绣出我偏傲的明暗。算了,生命如...