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的循环计数变量常用作数组的下标。例如,你可以使用串口输出数组的每个元素值:
int i; for (i = 0; i < 5; i = i + 1) { Serial.println(myPins[i]); }
更正、建议及新的文档应投递至论坛。
Arduino手册的文本受 Creative Commons Attribution-ShareAlike 3.0 License协议保护,手册中的例子代码则贡献给公共领域。