国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

Arduino 多維數(shù)組

2018-11-10 14:57 更新

具有兩個(gè)維度(即,下標(biāo))的數(shù)組通常表示由排列在行和列中的信息組成的值的表格

以下是多維數(shù)組的關(guān)鍵特性:

  • 為了識(shí)別特定的表格元素,我們必須指定兩個(gè)下標(biāo)。

  • 按照慣例,第一個(gè)標(biāo)識(shí)元素的行,第二個(gè)標(biāo)識(shí)元素的列。

  • 需要兩個(gè)下標(biāo)來(lái)標(biāo)識(shí)特定元素的數(shù)組稱(chēng)為二維數(shù)組或2D數(shù)組。

  • 具有兩個(gè)或多個(gè)維度的數(shù)組稱(chēng)為多維數(shù)組,并且可以具有多于兩個(gè)維度。

下圖說(shuō)明了一個(gè)二維數(shù)組 a 該數(shù)組包含三行四列,因此它是一個(gè)3乘4的數(shù)組。通常,具有 m 行和 n 列的數(shù)組稱(chēng)為 m乘n數(shù)組。


m-by-n數(shù)組

數(shù)組 a 中的每個(gè)元素都由 a[i][j] 形式的元素名稱(chēng)標(biāo)識(shí)。這里,a是數(shù)組的名稱(chēng), i j  a 中唯一標(biāo)識(shí)每個(gè)元素的下標(biāo)。注意,行0中的元素的名稱(chēng)都有第一下標(biāo)0;第3列中的元素的名稱(chēng)都有第二下標(biāo)3。

多維數(shù)組可以在其聲明中初始化,就像一維數(shù)組一樣。例如,一個(gè)二維數(shù)組 b 在其第0行元素中的值為1和2,在第1行元素中的值為3和4,可以被聲明和初始化如下:

int b[ 2 ][ 2 ] = { { 1, 2 }, { 3, 4 } };

這些值按大括號(hào)中的行分組。因此,1和2分別初始化b[0][0]和b[0][1],而3和4分別初始化b[1][0]和b[1][1]。如果對(duì)于給定行沒(méi)有足夠的初始化器,則該行的剩余元素被初始化為0。因此,以下聲明將b[0][0]初始化為1,b[0][1]初始化為0,b[1][0]初始化為3和b[1][1]初始化為4。

int b[ 2 ][ 2 ] = { { 1 }, { 3, 4 } };

例子

下面是一個(gè)演示在聲明中初始化二維數(shù)組的例子。

  • 行a-c聲明三個(gè)數(shù)組,每個(gè)數(shù)組有兩行和三列。

  • array1(行a)的聲明在兩個(gè)子列表中提供了六個(gè)初始化器。第一個(gè)子列表將數(shù)組的第0行初始化為值1,2和3;第二個(gè)子列表將數(shù)組的第1行初始化為值4,5和6。

  • 如果將每個(gè)子列表的大括號(hào)從array1初始化器列表中移除,那么編譯器將初始化第0行的元素,然后是第1行的元素,產(chǎn)生相同的結(jié)果。

  • array2(行b)的聲明只提供了5個(gè)初始化器。

  • 初始化器分配給第0行,然后分配給第1行。任何沒(méi)有顯式初始化器的元素都將被初始化為零,因此array2[1][2]初始化為零。

  • array3(行c)的聲明在兩個(gè)子列表中提供了三個(gè)初始化器。

  • 第0行的子列表明確地將第0行的前兩個(gè)元素初始化為1和2;第三個(gè)元素被隱式地初始化為零。

  • 第1行的子列表明確地將第一個(gè)元素初始化為4,并隱式地將最后兩個(gè)元素初始化為零。

  • 程序調(diào)用函數(shù)print Array來(lái)輸出每個(gè)數(shù)組的元素。請(qǐng)注意,函數(shù)原型(行k)指定了參數(shù) const int a[][columns]

  • 當(dāng)函數(shù)接收到一維數(shù)組作為參數(shù)時(shí),函數(shù)的參數(shù)列表中的數(shù)組括號(hào)是空的。

  • 二維數(shù)組的第一維度(即,行數(shù))的大小也不是必需的,但是所有后續(xù)的維度大小都是必需的。編譯器使用這些大小來(lái)確定多維數(shù)組中元素的內(nèi)存位置。

  • 無(wú)論維數(shù)如何,所有數(shù)組元素都連續(xù)存儲(chǔ)在內(nèi)存中。在二維數(shù)組中,第0行存儲(chǔ)在內(nèi)存中,隨后是第1行。

例子

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) ;
}

// output array with two rows and three columns

void printArray( const int a[][ columns ] ) {
   // loop through array's rows
   for ( int i = 0; i < rows; ++i ) {
      // loop through columns of current row
      for ( int j = 0; j < columns; ++j )
      Serial.print (a[ i ][ j ] );
      Serial.print (“\r" ) ; // start new line of output
   } 
// end outer for
} 

// end function printArray

結(jié)果

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

注意 - 每一行都是一維數(shù)組。要定位特定行中的元素,函數(shù)必須準(zhǔn)確知道每行中的元素?cái)?shù)量,以便在訪問(wèn)數(shù)組時(shí)可以跳過(guò)適當(dāng)數(shù)量的內(nèi)存位置。因此,當(dāng)訪問(wèn)a[1][2]時(shí),函數(shù)知道跳過(guò)內(nèi)存中第0行的三個(gè)元素到達(dá)第1行。然后,函數(shù)訪問(wèn)該行的元素2。許多常見(jiàn)的數(shù)組操作使用 FOR 語(yǔ)句。

例如,以下 FOR 語(yǔ)句設(shè)置數(shù)組 a 第2行中的所有元素。

for ( int column = 0; column < 4; ++column )
   a[ 2 ][ column ] = 0;

FOR 語(yǔ)句只改變第二個(gè)下標(biāo)(即,列下標(biāo))。前面的 FOR 語(yǔ)句等同于以下賦值語(yǔ)句:

a[ 2 ][ 0 ] = 0;
a[ 2 ][ 1 ] = 0;
a[ 2 ][ 2 ] = 0;
a[ 2 ][ 3 ] = 0;

以下嵌套FOR 語(yǔ)句確定數(shù)組 a 中所有元素的總和:

total = 0;
for ( int row = 0; row < 3; ++row )
for ( int column = 0; column < 4; ++column )
total += a[ row ][ column ];

FOR 語(yǔ)句一次一行地將數(shù)組的元素加總在一起。外部 FOR 語(yǔ)句首先將行(即,行下標(biāo))設(shè)置為0。因此,第0行的元素可以由內(nèi)部 FOR 語(yǔ)句進(jìn)行合計(jì)。

外部 FOR 語(yǔ)句然后將行增加到1,這樣,可以對(duì)第1行的元素進(jìn)行合計(jì)。然后,外部 FOR 語(yǔ)句將行增加為2,這樣,可以對(duì)第2行的元素進(jìn)行合計(jì)。當(dāng)嵌套的 FOR 語(yǔ)句終止時(shí),總數(shù)包含所有數(shù)組元素的和。



以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)