最近做到做到函式的部分,突然突發奇想想到一種寫法,可是怎麼試都不成功,所以來到版上問各位大大,先附程式~~~
int aaa[4] = {1, 2, 3, 4};
void setup() {
Serial.begin(9600);
}
void loop() {
test(aaa);
}
void test(int a[]) {
for (int i = 0; i < sizeof(a); i++) {
Serial.print(a[i]);
Serial.print(" ");
}
Serial.println("");
}
我的理想是顯示1234,可是顯示的卻是12而已,我有用SerialPort看過,sizeof(a)出來的數值一直是2,我有去網路上找過一些C的資料,我這種寫法好像是可以成功的,可是我在Arduino上就做不出來,請各位大大幫幫忙~
test
函式中 sizeof(a)
是 int*
的 size,而不是 array 的 size。
若您想知道 array 的 size,只能從外部傳遞
void test(int a[], int len) {
...
}
void loop() {
test(aaa, sizeof(aaa)/sizeof(int));
}