C语言学习--指针函数与函数指针
2024-10-20 04:19:59
#include<stdio.h>
#include<string.h> //指针函数: 是一个函数, 但是这个函数的返回值类型是一个指针
//函数指针: 是一个指针, 这个指针的指向是一个函数
//下面是指针函数
int * fun()
{
int a = 10;//a 是一个局部变量
int *p;
p = &a;
return p;
} int main()
{
int *p1 = fun();
printf("%d", *p1);
}
//10
#include<stdio.h>
#include<string.h> //指针函数: 是一个函数, 但是这个函数的返回值类型是一个指针
//函数指针: 是一个指针, 这个指针的指向是一个函数 void fun1(int a , int b){
printf("a+b = %d", a+b);
} //函数指针的定义个数: 函数的返回值类型(*函数指针名)(函数的形参)
void (*pfun) (int a , int b);//函数名, 就是函数的首地址 int main(){
pfun = fun1;
pfun( 10, 11); // a+b = 21
}
#include<stdio.h>
#include<string.h> //指针函数: 是一个函数, 但是这个函数的返回值类型是一个指针
//函数指针: 是一个指针, 这个指针的指向是一个函数 int add (int a , int b){
return a+b;
} int sub(int a, int b ){
return a-b;
} //指针函数, 类似于python把函数作为形参传给另外一个函数,但是这里的函数新参不需要指定, 在调用的时候指定就可以了
void fun3(int (*pf)(int, int ), int x , int y)
{
printf ("%d\n", pf(x,y));
} int main(){
fun3(add, 10, 11);// 在调用函数fun3的时候再指定指针函数为add()
fun3(sub, 10, 11);//在调用函数fun3的时候再指定函数为sub()
}
21
-1
#include<stdio.h>
#include<string.h> //指针函数: 是一个函数, 但是这个函数的返回值类型是一个指针
//函数指针: 是一个指针, 这个指针的指向是一个函数 //函数指针取别名 int add (int a , int b){
return a+b;
} int sub(int a, int b ){
return a-b;
} typedef int (*pf)(int , int);//函数指针取别名, 别名就是他自己, 并且别名可以当做类型去使用 void fun3(pf pf1, int x , int y)//别名pf 可以当做类型去使用, 定义一个pf 类型的变量pf1
{
printf ("%d\n", pf1(x,y));
} int main(){
fun3(add, 10, 11);// 在调用函数fun3的时候再指定指针函数为add()
fun3(sub, 10, 11);//在调用函数fun3的时候再指定函数为sub()
}
最新文章
- 解析Jquery取得iframe中元素的几种方法
- T-SQL中的一些小陷阱
- web框架--bottle
- 为什么使用Sass
- HTML+JS+DOM【选项卡自动切换】
- NSString的八条实用技巧
- Dijkstra + 优先队列优化 模板
- IntentService的使用
- android studio 实现代码混淆
- BZOJ 1216: [HNOI2003]操作系统( 优先队列 )
- 转账示例(四):service层面实现(线程管理Connection,AOP思想,动态代理)(本例采用QueryRunner来执行sql语句,数据源为C3P0)
- OpenCV3编程入门读书笔记5-边缘检测
- iOS HTML特殊字符转译
- iperf详细使用方法
- java 形式参数和实际参数的区别
- scrapy项目对接Docker
- Linux普通用户不能使用TAB键、上下键
- JFinal中文件上传后会默认放置到WebContent的upload包下,但是tomcat会自动重启,当我们再次打开upload文件夹查看我们刚刚上传的文件时,发现上传的文件已经没有了。
- 利用Elasticsearch搭建全球域名解析记录
- json转java对象