Loading...

Reference   Language | Libraries | Comparison | Changes

数组

数组是变量的集合,变量可以由数组+下标的方式访问。C语言里的数组有很多种复杂用法,这里介绍一下数组的简单用法。

创建(定义》数组

下面的语句都是合法的创建(定义)数组语句:

  int myInts[6];
  int myPins[] = {2, 4, 8, 3, 6};
  int mySensVals[6] = {2, 4, -8, 3, 2};
  char message[6] = "hello";

如myInts定义的那样,你无须在定义数组时初始化它。

如myPins定义那样,无须显示指定数组的大小,编译器自动计算数组中元素的数量并创建一个合适大小的数组。

如mySensVals所示,你也可以同时初始化并指定大小。当定义一个字符串数组(如message定义)时,注意数组大小会比字符数量多一个,用来保存字符串结束符。

访问数组元素

数组下标是从0开始计数,也就是说,数组第一个元素的下标的0,如

mySensVals[0] == 2, mySensVals[1] == 4,等等。

同样,若一个数组长度为10,则下标9代表该数组的最后一个元素:

int myArray[10]={9,3,2,4,3,2,7,8,9,11};
     // myArray[9]    值是11
     // myArray[10]   非法访问内存

因此,访问数组时需特别小心。越界访问数组(超过数组大小-1的下标)会扰乱其它正常使用的内存,读操作可能只会返回一些无意义的值,写操作则可能导致程序不正常行为甚至死机,这种Bug通常也很难调试。

与BASIC和JAVA语言不同,C语言不会检查数组下标是否在可用范围内。

为数组的某一元素赋值:

mySensVals[0] = 10;

读取数组的某一元素值:

x = mySensVals[4];

数组与for循环

数组经常使用for循环进行遍历操作。for的循环计数变量常用作数组的下标。例如,你可以使用串口输出数组的每个元素值:

int i;
for (i = 0; i < 5; i = i + 1) {
  Serial.println(myPins[i]);
}

例子

完整的演示数组的例子,请参见教程中的霹雳游侠

参见

Reference Home

更正、建议及新的文档应投递至论坛

Arduino手册的文本受 Creative Commons Attribution-ShareAlike 3.0 License协议保护,手册中的例子代码则贡献给公共领域。