C语言中的函数指针

  打开去年6月的一个test.cpp文件,发现对里面测试的函数指针几乎没有印象了。温故而知新, 于是重新找到ANSI C 里面的说明:


除了声明指向整型数字、双精度型数字和C语言其他数据类型的指针外,指针也能够被声明指向一个函数(包含一个函数的地址)。指向函数的指针是可能的,因为函数名像数组名一样,它们本身是指针常量。例如,首部行:

  int  (*cal) ()

声明calc是指向返回一个整数的函数指针。这意味着

    1:calc包含一个函数的地址

    2:这个地址在变量calc中的函数返回一个整型数值。

例如,如果函数sum()返回一个整数,则复制语句calc = sum; 是有效的。


下面要写的:

    1:下面的两个声明:

                   int*     p1;

                   char* p2;

           如果说p1与p2的区别是前者从保存的起始地址内连续读取4个字节(典型的一个int的长度),而后者读取1个字节。那么对于一个函数指针

                   int   (*p3) ()

           p3与前二者的区别于联系又是怎么样的?

     2:  为了说明上面的问题,指针的数据结构是怎么样的?工作机制是什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值