c-将数组变量放入多维数组中

  • 本文关键字:数组 变量 c arduino
  • 更新时间 :
  • 英文 :


我想要以下

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};

但我在最后一行看到一个错误:

数组必须使用大括号括起来的初始值设定项进行初始化。

C中,数组的名称表示数组的基地址,因此所有的ring1ring2ring3都给出了其起始元素的地址(即第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] =%pn", ring1, rings[0]);
printf("ring2 = %p and rings[1] =%pn", ring1, rings[1]);
printf("ring3 = %p and rings[2] =%pn", ring1, rings[2]);
return 0;
}