将数组变量放入多维数组中
Put array variable in multidimensional array
我想要以下
int ring1[5] = {1,2,3,4,5};
int ring2[5] = {6,7,8,9,10};
int ring3[5] = {11,12,13,14,15};
int rings[3][5] = {ring1, ring2, ring3};
但是我在最后一行收到一个错误:
Array Must be initialized with a brace-enclosed initializer.
在C
中数组名表示数组的基址,所以你所有的ring1
、ring2
和ring3
都给出了它们的起始地址元素(即第 0 个)。
同样rings
也是一个数组(它是一个二维数组)。
我们不能在数组中存储地址,因为那将不得不使用指针。
所以我们必须使用下面的方式。
#include <stdio.h>
int main()
{
int ring1[5] = {1,2,3,4,5};
int ring2[5] = {6,7,8,9,10};
int ring3[5] = {11,12,13,14,15};
//int rings[3][5] = {{ring1}, {ring2}, {ring3}};
int *rings[3] = {ring1, ring2, ring3};
printf("ring1 = %p and rings[0] =%p\n", ring1, rings[0]);
printf("ring2 = %p and rings[1] =%p\n", ring1, rings[1]);
printf("ring3 = %p and rings[2] =%p\n", ring1, rings[2]);
return 0;
}
我想要以下
int ring1[5] = {1,2,3,4,5};
int ring2[5] = {6,7,8,9,10};
int ring3[5] = {11,12,13,14,15};
int rings[3][5] = {ring1, ring2, ring3};
但是我在最后一行收到一个错误:
Array Must be initialized with a brace-enclosed initializer.
在C
中数组名表示数组的基址,所以你所有的ring1
、ring2
和ring3
都给出了它们的起始地址元素(即第 0 个)。
同样rings
也是一个数组(它是一个二维数组)。
我们不能在数组中存储地址,因为那将不得不使用指针。
所以我们必须使用下面的方式。
#include <stdio.h>
int main()
{
int ring1[5] = {1,2,3,4,5};
int ring2[5] = {6,7,8,9,10};
int ring3[5] = {11,12,13,14,15};
//int rings[3][5] = {{ring1}, {ring2}, {ring3}};
int *rings[3] = {ring1, ring2, ring3};
printf("ring1 = %p and rings[0] =%p\n", ring1, rings[0]);
printf("ring2 = %p and rings[1] =%p\n", ring1, rings[1]);
printf("ring3 = %p and rings[2] =%p\n", ring1, rings[2]);
return 0;
}