«网站首页
  • 回复:3 浏览:1016 2010-04-05 15:57 来自 Soli

    int *p[1024];
    是指针的数组

    这个数组有1024个元素,每个元素都是一个指向int型的指针

    你可以以变量名为起点“先右后左,括号优先”地解读变量的声明。

    必如上面这个:
    p是变量名,先右,“[”说明它是个数组,然后找到与“[”的匹配的另一半“]”,中间是1024,则说明它含有1024个元素;
    再看左边,“*”说明它的元素是指针类型的;
    再看右边,右边已经没有了;
    再看左边,“int”说明指针是指向int型的。
    亦即:p是一个数组,它包含1024个元素,每个元素是个指针,它(该指针)是指向int型的。

    再看
    int (*p)[1024];

    p是变量名,先右,右边“)”是一对括号的右半部分,所以继续;
    再看左边,“*”说明它是个指针,至此括号内的已经解读完,把括号内的内容看做整体,继续;
    再看右边,“[”说明它(括号中的全部内容)是个数组,然后找到与“[”匹配的另一半“]”,中间是1024,则说明它含有1024个元素;
    再看左边,“int”说明它的元素是int型的。
    亦即:p是个指针,它指向一个数组,该数组包含1024个元素,每个元素是个int型数据。

    推荐一本书,《C专家编程》,这个方法在上面有讲。
    欢迎继续讨论。

  • Acmen
    2010-08-24 17:12 Acmen
    嘿嘿 很简单实用啊
    回复 第1楼 回到顶楼
  • 安道云
    2010-09-07 11:53 安道云
    恩,记得有个人写了一个简化版的指针快速识别法,也是说的这种方法
    回复 第2楼 回到顶楼
  • C.R.
    2010-11-11 11:49 C.R.
    嗯。thinking in c++当中也提到了这个先右后左的方法
    回复 第3楼 回到顶楼
登录用户才能评论,请先登录注册


Top