黑马程序员技术交流社区

标题: 谁能详细解释下int (*p)[]和int *p[]的区别。 [打印本页]

作者: gaoxinglei123    时间: 2014-4-24 19:40
标题: 谁能详细解释下int (*p)[]和int *p[]的区别。
本帖最后由 gaoxinglei123 于 2014-4-27 21:33 编辑

rt。求大神解释一下。
作者: 郑亚鸽    时间: 2014-4-24 20:24
比如:
int *p[5 ];是定义了一个数组,数组名是p,这个数组是由5个指向int型数据的指针组成的。
int (*p)[5];是定义了一个指针p,它指向的是一个5个int型大小的数组。
作者: gmadong@163.com    时间: 2014-4-24 20:52
int (*p)[3] 就是指向一个int的数组的头指针的指针
用法:
int main(int argc, const char * argv[])
{

    *(&p)=1;
    *(&p+1)=2;
    *(&p+2)=3;
    printf("%d\n",*(&p));
   printf("%d\n",*(&p+1));
   printf("%d\n",*(&p+2));
}
而 int* p[]这个就不多说了就是一个装int类型的指针的数组


作者: 魅影穿眸    时间: 2014-4-25 12:04
本帖最后由 魅影穿眸 于 2014-4-25 12:06 编辑


(1)int* p[2] 是一个指向int型的指针数组,即:p是包含两个元素的指针数组,指针指向的是int型。

(2)对于 int (*p)[2], 它相当于一个二维数组的用法,只是它是一个n行2列的数。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2