码迷,mamicode.com
首页 > 其他好文 > 详细

C指针

时间:2016-01-01 01:55:31      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

非原创,感觉作者写的很有意思,特拿来记录一番。

int a,

int *a,

第一行代码:a是int型

第二行代码:*a是int型, a是int型指针

 

同理

int (*p)(int)

 (*p)(int) 是int型,后面带一个(int),则(*p)是函数,那么p是函数指针。

 

那么函数指针的指针呢?

int *(*p)(int)

 *(*p)(int)是int型,(*p)(int)是int的指针,(*p)是函数,p是函数指针。get√ 

//再变化一下=> int* (*p)(int) ,看出来没,(*p)(int) 是 int*型,(*p)是函数,p是函数指针。那么这是一个返回int指针的函数指针,所以这不是函数指针的指针。

 

int (**p)(int)

 (**p)(int)是int型,**p是函数,*p是函数指针,p是函数指针的指针。

 

----------

int *(*(*(*abc)())[6])()如何解读

*(*(*(*abc)())[6])()是int型,

(*(*(*abc)())[6])()是int指针,

(*(*(*abc)())[6])是函数,

(*(*abc)())[6]是函数指针,

(*(*abc)())是函数指针的数组,

(*abc)()是函数指针的数组的指针,

(*abc)是函数指针的数组的指针的函数,

abc是函数指针的数组的指针的函数指针!get√

 

------------

 

最好用typedef,这样会更容易看:
 
typedef int     func(int);  
typedef func*   pfunc;      
typedef pfunc*  ppfunc;    
 
ppfunc p;
 
理解typedef,typedef int  (* func)(int),意思是  func =  int (*xxx)(int)
 

 

 

 

 

C指针

标签:

原文地址:http://www.cnblogs.com/jsgnadsj/p/5092887.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!