函数指针
2024-01-08 07:41:45
一、函数指针复习
内存的作用-----用来存放程序运行过程中的
-
数据
-
指令
1.1、 内存四区
堆区
栈区
数据区
代码区
1.2、C语言中内存数据的访问方式
直接访问:通过所在空间名称去访问
间接访问:通过所在空间首地址去访问 *地址值 此时的*为间接访问运算符
1.3、C语言中函数调用方式:
直接调用:通过函数名去调用函数
间接调用:通过函数在代码区所对应的那份空间的首地址去调用
堆区的内容只能采用间接访问,*
int func(int a,int b)
{
? ?//......
}
?
int (int a,int b) ?* pf;//语法错误
int *pf(int a,int b);//函数声明语句
int (*pf)(int a,int b);//定义一个函数指针
pf = &func;//&运算符后面如果是函数名的话可以省略不写
pf = func;
?
y = func(3,4);//直接调用
y = (*pf)(3,4);//间接调用,*运算符后面如果是函数指针类型则可以省略不写
y = pf(3,4);//间接调用
?
typedef int myint;
typedef int (*)(int,int) ?pft;//语法错误
typedef int (*pft)(int,int) ;
pft pt;
大部分采用直接调用
函数名就代表了函数在代码区函数的存放的首地址
1.4 适用场合
前提:当有很多个同类函数待被调用时
A处:知道所有函数名,由此处来决定B处将会调用哪个函数
B处:负责调用A处指定的函数
思考:A处如何告诉B处被调用的是哪个函数呢,无非两个办法:
-
告诉B处函数名,怎么做呢?传字符串----“函数名”? C语言没有对应语法支持
-
告诉B处对应函数在代码区的地址
文章来源:https://blog.csdn.net/2302_76785838/article/details/135447198
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!