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

ksnowlv的博客

积土成丘,集腋成裘,坚持再坚持!

 
 
 

日志

 
 

C/C++_多级指针  

2013-12-09 17:30:41|  分类: C/C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
    背景:最近几个月面试一些C/C++岗位面试者,关于指针方面我考查的问题之一,特意写下来,分享给有需要的人。限于时间关系,不深入研究,感兴趣的,可以好好研究下。

     当指针变量pp所指的变量p也是一种指针时,pp是一种指向指针的指针,称指针变量pp是一种多级指针。理论上三级指针,四级指针...n级指针.
   其中,比较常用常见的是一级指针,二级指针(二级指针类型实际上是一级指针变量的地址)。

下面写个例子演示下,

- (void)testMultiPointer

{

    NSInteger value = 10;

    NSInteger *p = &value;

    NSLog(@"1级指针p = %p value = %d",p,*p);

    NSInteger **pp = &p;

    NSLog(@"2级指针pp = %p pp value = %p value = %d",pp,*pp,**pp);

    NSInteger ***ppp = &pp;

    NSLog(@"3级指针ppp = %p ppp value = %p value = %d",ppp,**ppp,***ppp);

    NSInteger ****pppp = &ppp;

    NSLog(@"4级指针pppp = %p pppp value = %p value = %d",pppp,***pppp,****pppp);

    

}


日志输出如下:

2013-12-09 17:09:24.990 multiPointerTest[12149:70b] 1级指针p = 0xbfffc9c4 value = 10

2013-12-09 17:09:24.991 multiPointerTest[12149:70b] 2级指针pp = 0xbfffc9c0 pp value = 0xbfffc9c4 value = 10

2013-12-09 17:09:24.992 multiPointerTest[12149:70b] 3级指针ppp = 0xbfffc9bc ppp value = 0xbfffc9c4 value = 10

2013-12-09 17:09:24.992 multiPointerTest[12149:70b] 4级指针pppp = 0xbfffc9b8 pppp value = 0xbfffc9c4 value = 10


     可以依次类推,5级,6级...n级。如何知道多级指针应该指向什么类型的指针,直接把多级指针的声明去掉一个*后的类型,可以上面验证了该结论。

p指向的是NSInteger类型pp指向的是NSInteger *(x)类型,ppp指向的是NSInteger **(x)类型,  pppp指向的是NSInteger ***(x)类型,   ...   

    希望这几篇连续的篇章可以让你快速了解指针

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

历史上的今天

评论

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

页脚

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