指针数组与指向数组的指针

1. int (*p)[4]

    表示 p 是一个指针变量,他指向包含 4 个元素的一维数组。

2. int *p[4]

    表示 *p[4]是指针数组

   ----------------------------------------------------

    这个问题我们采用以下的方式来理解它就一目了然了:

    对于 int (*p)[4], 我们可以先将 (*p) 看成是一个整体,并用 a 代替 变为 int a [4].  很容易看出,a 有4个元素,每个 元素为整型;那么 *P 有4个元素,每个元素也为整型。也就是 p所指的对象是有 4个整形元素的数组。因此,此时p只能只想一个包含 4个元素的整型数组。p+i 就是二维数组第i行的地址。

    对于int *p[4] 由于[] 运算级别高,因此p先于[]结合,是数组有4个元素,然后再与前面的 *结合, *p[4] 是指针数组

   

posted @ 2009-03-09 21:13  红袖添香  阅读(545)  评论(0编辑  收藏  举报