请问这个该怎么给它赋值?还有,指向数组的直接就int *p,然后指向第一个元素不就行了么。为什么还要用那个?
楼上说错了,p本质是指针。不是数组。
p是指向数组的指针,而这个数组是含有3个整型单元的数组。
比如,
#include <stdio.h>int main(int argc, char *argv[])
{
int (*p)[3];
int a[3] = { 0, 1, 2 };
int b[2][3] = {{1, 2, 3}, {4, 5, 6}};
p = &a;
printf("%d.%d.%d\n", (*p)[0], (*p)[1], (*p)[2]);
p = b; //p类似(注意是类似)二级指针
printf("%d-%d-%d\n", p[0][0], p[0][1], p[0][2]);
return 0;
}追问
p = &a;这句,为什么要加&呢?数组名不就是代表地址???
你下面的p=b;就没有加啊。我试过像p=a;那样赋值,但编译器会报错。
p是二级指针,a是一级指针,b也是二级指针。
问这些问题的时候麻烦看看我上面回答的文字。
多说一句,数组名a代表的是数组首元素的地址。&a代表整个数组的首地址,虽然它们值是一样的,但含义是不一样的!
温馨提示:答案为网友推荐,仅供参考