在 Arduino IDE 中,我想添加两个现有数组的内容,如下所示:
#define L0 { {0, 0, 0, 0}, {0, 0, 0, 1}, {0, 0, 0, 0} }
#define L1 { {0, 0, 0, 1}, {0, 0, 0, 0}, {0, 0, 0, 0} }
应该成为
int myarray[3][4] = { {0, 0, 0, 1}, {0, 0, 0, 1}, {0, 0, 0, 0} }
我该怎么办?
谢谢!
我认为您对如何访问数组感到困惑L0
,L1
因为它们被定义为宏。只需将它们分配给数组,因为预处理器将简单地替换它们:
int l[][4]=L0;
int m[][4]=L1;
预处理器将用它们的值替换L0
和L1
,编译器只会将它们视为:
int l[][4]={ {0, 0, 0, 0}, {0, 0, 0, 1}, {0, 2, 0, 0} };
int m[][4]={ {0, 0, 0, 5}, {0, 0, 0, 6}, {0, 0, 7, 0} };
现在,您可以使用l
&m
来访问数组的元素。从这里开始应该很容易添加两个数组:)
你这个;
const int a[3][4] = { {0, 0, 0, 0}, {0, 0, 0, 1}, {0, 0, 0, 0} };
const int b[3][4] = { {0, 0, 0, 1}, {0, 0, 0, 0}, {0, 0, 0, 0} };
int c[3][4];
const int* pa = &a[0][0];
const int* pb = &b[0][0];
int* pc = &c[0][0];
for(int i = 0; i < 3 * 4; ++i)
{
*(pc + i) = *(pa + i) + *(pb + i);
}