黑马程序员技术交流社区
标题: 谁能详细解释下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 |