day12 函数指针
来源:互联网 发布:qr分解求逆矩阵 编辑:程序博客网 时间:2024/05/22 01:59
1.函数指针:指向函数的指针就是函数指针,由于函数名里面存储的就是函数的首地址,即函数指针是指向函数名的指针
2.定义指针的格式 :指针类型修饰符 *指针变量名 = 初始化
float *f = NuLL
3.如何定义一个函数指针,其步骤:a.将函数名去掉用(*)替代 b.如果有参数将参数名去掉,只保留参数类型
eg:int * sum(int a,int b);——>int (*)(int a,int b);——>int (*) (int ,int);
4.如何定义函数指针变量
格式 :返回值类型 (*函数指针变量名) (参数类型列表) = 初始值
a.无参函数类型 void (*hello)() = NULL,hello 就是韩式指针变量名
b.有参数类型 int (*Sum)(int,int) = NULL;注意:在书写函数指针变量名的时候,不能和函数名重名
5.函数指针变量的使用
下面是一个函数
void (*hello)() = NULL
sayHello(){
printf("hello\n");
}
hello = sayHello;将函数的地址赋值给指针变量,函数名中存储的就是函数的地址
直接访问函数,直接调用函数
sayHello();小括号()叫做函数的调用符
间接地访问函数==间接地调用函数
hello();
6.定义函数指针变量需要注意的内容:a.确定函数指针的类型 b.指针变量名不能于函数重名 c.有参数的指针变量只写参数类型
7.通过函数指针变量调用函数需要注意的内容: a.调用无惨函数时指针变量后的()小括号是不能省略的 b.调用有参的函数()小括号内一定要写入参数,而且参数的个数一定要和函数的形参个数类型保持一致
8.同一个函数指针可以指向不同函数,前提指向的那些函数的类型要一样,也就是说定义一个函数指针不只是只能指向一个函数,而是,可以指向同一类型函数
9.给函数指针类型其别名的格式:
typedef 返回值类型 (*函数指针新类型名) (参数类型列表)
eg:typedef int (*FUN)(int ,int);
使用新的函数指针类型定义函数指针变量
FUN p = sum;
int (*p) (int ,int) = sum;
int result1 =p(4,6);
printf("%d\n",result1);
10.回调函数 :函数指针作为函数的参数,函数的地址作为参数传入函数的内部,在内部又调用函数指针指向的函数
0 0
- day12 函数指针
- C语言DAY12 - 指针
- day12
- day12
- day12
- day12
- day12
- day12
- day12
- Day12
- day12
- Day12
- day12
- day12
- day12
- day12
- Day12
- day12--函数返回值和定时器回顾
- Unity3d 4.6版本时assetbundle.createFromFile的问题
- hibernate_helloworld
- day11动态内存分配
- Win7如何解决telnet不是内部或外部命令的方案!
- Linux下ls怎么屏蔽波浪线~作为文件名结尾的文件
- day12 函数指针
- android PopupWindos之引导
- ListView加载与取值的基本理解
- Android网络编程
- Just Do It
- django中使用日志输出
- Java排序算法---冒泡排序法
- UVA 10167 Birthday Cake
- 有关getchar的用法