您的位置:首页 > 其它

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

2012-11-22 18:50 246 查看
一 指针函数与函数指针

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 arr[10]={1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f};
float (*p)[10]=&arr;
float (**def)[10]=&p;


三、其他一些类型

float*(*def)[10]

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

float (*def)(int)

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

float (*def[10])()

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

最变态的一个:

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

是一个指向函数的指针,指向的函数的类型是有两个int参数并且返回一个函数指针的函数,返回的函数指针指向有一个int参数且返回int的函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐