首页 > 代码库 > 函数指针
函数指针
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int f(int); 5 6 int main(int argc, char *argv[]) 7 { 8 int ans;
/*创建函数指针pf,该函数返回值为整型,并有一个整型的形参*/ 9 int (*pf)(int);10 11 /*下面两种写法都正确,&操作符是可选的,12 *因为函数名被使用的时候总是有编译器把它转换成为函数指针,13 *&操作符只是显示地说明了编译器将隐式执行的任务.14 */15 pf = f;16 pf = &f;17 18 /*简单地使用名字调用函数f,但它的执行过程可能和你想象的不太一样.19 *函数名f首先被转换成一个函数指针,该指针指定函数在内存中的位置.20 *然后,函数调用操作符调用该函数,执行开始于这个地址的代码.21 */22 ans = f(23);23 printf("%d\n", ans);24 25 /*对pf执行间接访问操作,它把函数指针转换成一个函数名.这个转换并不是真正需要的,26 *因为编译器在执行函数调用操作符之前又会把它转换回去.27 */28 ans = (*pf)(43);29 printf("%d\n", ans);30 31 /*和前两条语句的效果是一样的.32 *间接访问操作并非必要,因为编译器需要的是一个函数指针.33 */34 ans = pf(53);35 printf("%d\n", ans);36 37 return 0;38 }39 40 int f(int a)41 {42 43 return a + 10;44 45 }
函数指针
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。