具有二维的数组(即下标)通常表示由以行和列排列的信息组成的值表。
int b[ 2 ][ 2 ]={ { 1, 2 }, { 3, 4 } };
这些值按大括号按行分组,因此,1和2分别初始化b [0] [0]和b [0] [1],而3和4分别初始化b [1] [0]和b [1] [1],如果给定行的初始化程序不足,则将该行的其余元素初始化为0。因此,以下声明将b [0] [0]初始化为1,b [0] [1]初始化为0,b [ 1] [0]至3和b [1] [1]至4。
int b[ 2 ][ 2 ]={ { 1 }, { 3, 4 } };
Multi-Dimensional Arrays - 示例
void printArray ( const int [][ 3 ] ); //prototype const int rows=2; const int columns=3; int array1[ rows ][ columns ]={ { 1, 2, 3 }, { 4, 5, 6 } }; int array2[ rows ][ columns ]={ 1, 2, 3, 4, 5 }; int array3[ rows ][ columns ]={ { 1, 2 }, { 4 } }; void setup () { } void loop () { Serial.print ("Values in array1 by row are: ") ; Serial.print (“\r” ) ; printArray(array1) ; Serial.print ("Values in array2 by row are: ") ; Serial.print (“\r” ) ; printArray(array2) ; Serial.print ("Values in array3 by row are: ") ; Serial.print (“\r” ) ; printArray(array3) ; } //两行三列的输出数组 void printArray( const int a[][ columns ] ) { //循环遍历数组的行 for ( int i=0; i < rows; ++i ) { //循环遍历当前行的列 for ( int j=0; j < columns; ++j ) Serial.print (a[ i ][ j ] ); Serial.print (“\r” ) ; //开始新的输出行 } //结束外部 } //结束函数 printArray
Values in array1 by row are: 1 2 3 4 5 6 Values in array2 by row are: 1 2 3 4 5 0 Values in array3 by row are: 1 2 0 4 0 0
例如,以下 FOR 语句设置数组 a 的第2行中的所有元素。
for ( int column=0; column < 4; ++column ) a[ 2 ][ column ]=0;
FOR 语句仅更改第二个下标(即列下标)。前面的 FOR 语句等效于以下赋值语句-
a[ 2 ][ 0 ]=0; a[ 2 ][ 1 ]=0; a[ 2 ][ 2 ]=0; a[ 2 ][ 3 ]=0;
以下 Nested FOR 语句确定数组 a 中所有元素的总数-
total=0; for ( int row=0; row < 3; ++row ) for ( int column=0; column < 4; ++column ) total += a[ row ][ column ];
FOR 语句一次将数组的元素总计一行,外部 FOR 语句从将行(即行下标)设置为0开始。因此,内部 FOR 语句可以将第0行的元素总计。
参考链接
https://www.learnfk.com/arduino/arduino-multi-dimensional-arrays.html
标签:语句,Multi,Arduino,Arrays,column,int,print,Serial,row From: https://blog.51cto.com/u_14033984/7966204