• 函数指针


     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 ", ans); 24 25 /*对pf执行间接访问操作,它把函数指针转换成一个函数名.这个转换并不是真正需要的, 26 *因为编译器在执行函数调用操作符之前又会把它转换回去. 27 */ 28 ans = (*pf)(43); 29 printf("%d ", ans); 30 31 /*和前两条语句的效果是一样的. 32 *间接访问操作并非必要,因为编译器需要的是一个函数指针. 33 */ 34 ans = pf(53); 35 printf("%d ", ans); 36 37 return 0; 38 } 39 40 int f(int a) 41 { 42 43 return a + 10; 44 45 }
  • 相关阅读:
    使用sublimehighlight 将文本 转化html
    iOS- 制作U盘安装Mac OS X 系统
    垃圾回收的常见算法
    jvm的三种参数类型
    HashMap遍历取值
    不要在 foreach 循环里进行元素的 remove/add 操作
    Arrays.asList()使用指南
    正确使用 equals 方法
    elasticsearch安装与配置(在Linux环境下配置)
    本地访问Linux里端口连接失败
  • 原文地址:https://www.cnblogs.com/yyxayz/p/4072960.html
Copyright © 2020-2023  润新知