4

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

我该怎么办?

谢谢!

4

2 回答 2

2

我认为您对如何访问数组感到困惑L0L1因为它们被定义为宏。只需将它们分配给数组,因为预处理器将简单地替换它们:

int l[][4]=L0;
int m[][4]=L1;

预处理器将用它们的值替换L0L1,编译器只会将它们视为:

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来访问数组的元素。从这里开始应该很容易添加两个数组:)

于 2012-10-12T19:44:28.817 回答
2

你这个;

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);
}
于 2012-10-12T20:34:57.077 回答