为什么我不能将数组赋值为&a =&b?

我有一个问题,分配一个数组:

int a[]; int b[] = {1,2,3}; &a = &b; 

我知道我可以使用指针,但我想尝试这种方式…

你不能用C分配数组。你可以用<string.h>声明的memcpy()函数复制它们。

 int a[3]; int b[] = {1,2,3}; memcpy(&a, &b, sizeof a); 

正如你所发现的那样,这种方式是行不通的。 您不能在C中分配数组

然而,结构是可分配的。 所以你可以这样做:

 typedef struct { int x[3]; } T; T a; T b = { { 1, 2, 3 } }; a = b;