2012-10-12 80 views
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} } 

我怎麼會去嗎?

謝謝!

+3

您是否嘗試過使用循環還是兩個? –

+3

包裹在陣列中的一類,初始化構造函數中的內容,並創建一個函數類的靜態實例變量,返回一個參考包裹陣列 – lurscher

+1

@lurscher - 就這麼簡單!爲什麼我沒有想到這一點? –

回答

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); 
} 
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來訪問數組的元素。應該很容易從這裏足以增加兩個陣列:)