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

来源:互联网 发布:python while循环游戏 编辑:程序博客网 时间:2024/05/01 23:42

最近书上看了一些关于指针的内容,觉得不错,特此记录

关于以下指针定义的解释

(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的函数)的函数指针。好吧,很复杂。就暂且这样吧,下次见。


0 0
原创粉丝点击