您的位置:首页 > 其它

关于指针很多可能情况的的详细解释

2015-05-10 22:40 507 查看
最近书上看了一些关于指针的内容,觉得不错,特此记录

关于以下指针定义的解释

(1) float(**def)[10];

(2) double*(*gh)[10];

(3) double(*f[10])();

(4) int*((*b)[10]);

(5)Long(* fun)(int);

(6) Int(*(*F)(int,int))(int);

(1) float(**def)[10]; 声明了一个float型的float数组,def为一个二级指针,(1)中的声明可以等价为:

float d[10];//普通的数组

float *de=&d;//一个指向数组首指针地址的指针

float *def=&de;//一个指向数组首指针地址的指针的指针

(2) double*(*gh)[10]; 声明了一个double型的指针数组,*(*gh)[10]为一个指针数组,其中存储了10个double型的指针,此声明可以等价为:

double *g[10];//声明了一个指针数组,g为该指针数组的首地址,数组中存储了十个指向double型变量的指针

double *gh=&g;//声明一个指向g的地址的指针

(3) double(*f[10])(); 函数指针,声明了一个指向(返回值为double,参数为空的函数)的函数指针数组,包含十个这样的指针

(4) int*((*b)[10]);  指向指针数组的指针,可以等价为:

int *get[10];//指针数组

int *b=&get;//一个指向指针数组的首指针的指针

(5) Long(* fun)(int); 一个简单的函数指针,指针指向一个返回值为long且参数为一个int的函数

(6) Int(*(*F)(int,int))(int); 比较复杂,认真分析之后也不太复杂,F为一个指向(返回值为(一个指向(返回值为Int,参数为一个int的函数)的函数指针),参数为两个int的函数)的函数指针。好吧,很复杂。就暂且这样吧,下次见。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: