指针函数与函数指针,指针数组及数组指针

一 指针函数与函数指针 

1、指针函数:本质还是函数,返回一个某一类型的指针。

                类型标识符 *函数名(参数表)

                       int *f(x,y);

     比如: char* f();

                  char* p;

                  p = f();

2、函数指针:一个指针指向某一个函数,本质是一个指针。

                 int (*f) (int x); // 声明一个函数指针 

             f=func;  //将func函数的首地址赋给指针f 

                void (*fptr)();

                fptr=&Function;(或者fptr=Function;)

可以采用如下两种方式来通过指针调用函数:
               x=(*fptr)();
               x=fptr();

二 指针数组及数组指针

1、指针数组:本质是一个数组,比如

       float**def[10]
       一个含有10个元素的数组,数组的元素类型为float**,指向float*对象的指针

2、数组指针:是一个指针

       float(**def)[10]
       一个指针,这个指针(def)指向另一个指针(tmp),而这另一个指针(tmp)指向一个数组元素为float变量的大小为10的数组,以下代码说明了这个意思

三、其他一些类型      

      float*(*def)[10]

      一个指向数组的指针,这个数组大小为10,元素类型为float*。

      float (*def)(int)

      一个指向函数的指针,这个函数接受一个int值作为参数,返回值为float型。

      float (*def[10])()

      一个数组,这个数组有10个元素,每个元素都为指向函数的指针,这些函数无参数且返回值为float型。

      最变态的一个:

      int (*(*def)(int, int))(int)

      是一个指向函数的指针,指向的函数的类型是有两个int参数并且返回一个函数指针的函数,返回的函数指针指向有一个int参数且返回int的函数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值