数组与指针的艺术--深入探索c/c++数组与指针的奥秘

  [推荐] 数组与指针的艺术--深入探索c/c++数组与指针的奥秘

 一直以来想把2005年写的《再再论指针》修改一下,因为经过了这么多年,对C/C++的理解与05年相比又有了一些进展。但公司的工作一直很忙,没有时间进行修改工作。直到10月初的长假,才开始。从放假到现在过去两个月了,一直利用空闲时间断断续续地修改,共写了两万字,十章节。偶不是作家,两万字对偶来说已经是极限中的极限了,没有功劳也有苦劳,没有苦劳也有疲劳吧,不过总算把这几年来对数组与指针的心得写成了一系列文章,当然限于偶的水平,存在错误无法避免,希望跟各位朋友一起,共同讨论,共同进步!

前言:http://blog.csdn.net/supermegaboy/archive/2009/11/23/4855036.aspx
第一章:数组与指针概念剖析 http://blog.csdn.net/supermegaboy/archive/2009/11/23/4855027.aspx
第二章:数组名是一个指针常量吗?http://blog.csdn.net/supermegaboy/archive/2009/11/23/4855018.aspx
第三章:数组的解剖学http://blog.csdn.net/supermegaboy/archive/2009/11/23/4855010.aspx
第四章:[]运算符的本质http://blog.csdn.net/supermegaboy/archive/2009/11/23/4855000.aspx
第五章:字符串字面量---一个特殊的数组http://blog.csdn.net/supermegaboy/archive/2009/11/23/4854987.aspx
第六章:指针与consthttp://blog.csdn.net/supermegaboy/archive/2009/11/23/4854974.aspx
第七章:右左法则----复杂指针解析http://blog.csdn.net/supermegaboy/archive/2009/11/23/4854965.aspx
第八章:柔性数组成员http://blog.csdn.net/supermegaboy/archive/2009/11/23/4854939.aspx
第九章:C99可变长数组VLA详解http://blog.csdn.net/supermegaboy/archive/2009/11/23/4854921.aspx
第十章:动态数组http://blog.csdn.net/supermegaboy/archive/2009/11/23/4854899.aspx

typedef和指针

const struct node *p1;

typedef struct node *list;

const list p2;

p1类型是const struct node*,那么p2呢?如果你以为就是把list简单“代入”p2,然后得出p2类型也是const struct node*的结果,就大错特错了。p2的类型其实是struct node * const p2,那个const限定的是p2,不是node。造成这一奇异现象的原因是指针声明器被分割。

typedef 是一种类型重定义,也就是说,list是一种新的类型,因而,const list p2和const int p2只是类型上的不同;后者是一个int型常量,前者是一个list型常量

你可能感兴趣的:(数组与指针的艺术--深入探索c/c++数组与指针的奥秘)