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

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

关于以下指针定义的解释

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


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值