Arduino:来自 int 二维数组的奇怪值?

Arduino: Strange values from a int two dimensional array?

这应该很简单。我只是想在 Arduino C* 中调用二维数组。

我习惯在Python中使用嵌套字典和数组。我得到它。但我在这里没有得到预期的价值。例如,当我调用索引时说 array[0][0],它被设置为 2。我得到的值类似于 5!

#include "SoftPWM.h"

int pins[5][3] = {
  { 0, 1, 2 },
  { 3, 4, 5 },
  { 6, 7, 8 },
  { 9, 10, 11 },
  { 12, 13, 13 }
};

void setup()
{
  Serial.begin(9600);
  SoftPWMBegin();
  for (int l = 0; l < 5; l++) {
    for (int p = 0; p < 3; p++) {
      SoftPWMSet(pins[1][p], 255);
    }
  }
  SoftPWMSetFadeTime(ALL, 100, 100);
}

void loop()
{
  for (int l = 0; l < 5; l++) {
    Serial.print("l =");
    Serial.println(l);
    for (int p = 0; p < 3; p++) {
      Serial.print("p =");
      Serial.println(p);
      Serial.print("pin =");
      Serial.println(pins[1][p]);

      SoftPWMSetPercent(pins[1][p], 100);
      delay(500);
      SoftPWMSetPercent(pins[1][p], 0);
      delay(500);
    }
  }
}

输出:

l =0
p =0
pin =3 //<-- [0][0] should be 0
p =1
pin =4
p =2
pin =5   //<-- [0][2] should be 2
l =1
p =0
pin =3
p =1
pin =4
p =2
pin =5
l =2
p =0
pin =3   //<-- [2][0] should be 6
p =1
pin =4
p =2
pin =5

那是因为你正在打印 pins[1][p]。不是 pins[l][p].

pins[1][0]3pins[1][2]5.