关于一维数组的简单问题

如果a是一个一维数组,那么a就代表首元素地址,
那么此时int* p[3]=&a;(a是一个数组)是什么意思呢?是数组p的第一个元素是a的地址的地址吗?
还是说也是a的地址的意思?那么就代表&a和a是一个意思喽?

望采纳!点击该回答右侧的“采纳”按钮即可采纳!!!
对于你的第一个问题
int* p[3] = &a; 表示 p 是一个包含 3 个 int* 类型的元素的数组,并将 a 的地址赋给了 p 的第一个元素。所以 p 的第一个元素是 a 的地址,而不是 a 的地址的地址。这样 p[0] 就是 a 的地址,p[1] 和 p[2] 则是未定义的地址。


&a 和 a 是不同的,&a 是 a 的地址,而 a 是一个指向 int 类型的指针,代表 a 数组的首元素的地址。


我给你举个例子,当 a 是 int a[10] 类型的一维数组时,&a 和 a 的值都是 a 数组的首元素的地址,但是 &a 是一个 int* 类型的指针,而 a 是一个 int 类型的指针。不知道我有没有讲清楚呢,如果讲清楚啦——望采纳!点击该回答右侧的“采纳”按钮即可采纳!!!

你不要老自己创造语法行吗
这玩意根本编译不过去
这就不是一个真问题
一个指针数组,它首先要初始化长度,也就是分配好内存空间,然后将里面每个指针指向一个东西,比如指向一个int a可以这样写
p[0]=&a;
如果要指向一个数组a1则需要写p[1]=a1;
你写了个根本不存在的语法然后纠结这样写有什么目的,是完全没意义的行为