注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

TOTO

Think and Be Different

 
 
 

日志

 
 

指针数组和数组指针【zz】  

2008-02-27 22:12:04|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

form here   

    指针数组,故名思义,就是指针的数组,数组的元素是指针;

    数组指针,同样,就是直想数组的指针。

    简单举例说明:

    int *p[2]; 首先声明了一个数组,数组的元素是int型的指针。

    int (*p)[2]; 声明了一个指针, 指向了一个有两个int元素的数组。

    其实这两种写法主要是因为运算符的优先级, 因为[]的优先级比*高。所以第一种写法,p先和[]结合,所以是一个数组,后与*结合,是指针。后一种写法同理。

    指针数组如下处理就会很清楚:

    typedef int* intPtr;

    intPtr p[2];

    一目了然,所以为了避免迷惑,做适当的typedef也是很有必要的。

    同理,数组指针也可以作类似处理:

    typedef int intArray2[2];

    intArray2 * p;

    和原来的声明都是等价的。

   

    个人建议编程过程中采用typedef来进行类型定义,这样程序看起来会清晰很多。举个例子说明:

    数组指针,元素为指向数组的指针:)

    首先,指向数组的指针为:

    typedef intArray2* intArray2Ptr;

    然后是一个数组的元素:

    typede intArray2Ptr intArray2PtrArr3[3];

    最后数组的指针:

    intArray2PtrArr3 *p;

  评论这张
 
阅读(78)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017