指针数组与数组指针从名称来看比较容易混淆,其实比较容易区分。这就是我们汉语语言的魅力。数组和指针是两个名字,组合形成一个名字是。后面的名词是本质,前面的名词是定语。修饰后者。按照这个语言规律我们来分析一下这两个名词。

   “指针数组”首先是一个数组,指针其实说的数数组元素的类型。也就是每个元素都是指针的数组。

  “数组指针”,其实是"指向数组的指针“简称。也就是一个指向一个数组的指针。在32位系统占四个字节。数组有数组的约束。占多少字节由数组声明确定。这也是C的自由特点的表现。

  一般在C语言中语句是向右优先结合的。我们来分析一下下面两条语句。

    int   *p1[10] ;

    int (*p2)[10];

  如果我们知道”右优先“原则,就能轻易的分析出上面两条语句的含义。

  int *p1[10]   其实是两层含义, 首先是p1[10 ],然后是*。p1[10] 是10个元素数组。*是指针。也就是10个指针元素的数组。指针指向的类型是整型。

       int (*p2)[10] 也是两层含义,( )优先级高,所以首先是一个指针,[10]是个元素的数组,p2指向一个包括了10整数元素的指针。

     这个理解起来比较绕口。但是使用几次以后就比较明了了。在一般做单片程序时,也不太涉及这些东西。了解一下就可以了!

     关于指针我基本上只能写这么多了。希望对网友有一点点帮助!!!