接续上篇C语言基础及指针③函数与二级指针
在上一篇中 , 我们学习了函数与二级指针 , 函数和java中的方法类似 , 只是缺少了访问控制符 , 二级指针也就是指针的指针 , 指针里面存储的是指针的地址 , 可以通过*
操作符不断往上追溯 , 然后通过内存地址操作内存空间 。
函数指针
当我们定义一个函数的时候 , 这个函数也会像变量一样 , 会有一个内存地址 , 我们也可以将函数定义成为一个函数指针 , 但函数不同于变量 , 变量存储的是固定的值 , 而函数指针存储的是函数的内存地址 。下面我就用一个示例来说明:
// windows 弹出框头文件
#include <Windows.h>
/*函数*/
void message() {
MessageBox(NULL, "我是弹出框", "消息", NULL);
}
void main() {
// 函数指针定义 , 返回值(函数指针名称)(函数参数) = 函数名称
void(*func_p)() = &message;
// 调用函数指针
func_p();
printf("函数指针地址:%#x\n", func_p);
getchar();
}
输出:
函数指针地址:0xe6d31073
我们可以通过函数指针地址 , 反汇编我们的程序员 , 查看他的跳转