以下內容源自Mixly官方技術文檔:
https://mixly.readthedocs.io/zh_CN/latest/Arduino/AVR/06Lists.html
數組
數組是爲了便於代碼編寫時所採用的一種數字塊。具體包括:定義數組、取數組值、改數組值。
數組像一個大盒子,可以儲存一定個數的數字(第一個指令)或字符串(第二個指令)。在課程中的音樂盒一課,我們就用到了數組。
如上圖,tonelist, musiclist, highlist, rhythmlist分別儲存了歌曲《兩隻老虎》的基本頻率(即哆來咪等七音的對應頻率),頻率變化(即兩隻老虎的簡譜數字),每個音的音名CDEFGAB以及每個音的時值(長短)。 《兩隻老虎》共有三十二個音,因此使用了一個從1到32的循環語句以此讀取第一個音的頻率變化(簡譜,並通過.. image:: images/06Lists/array3.png語句可讀取簡譜的基本頻率),隨後與獲取highlist裏的對應音高並按thythmlist裏的時值進行相應延時。 該代碼將《兩隻老虎》的指令放到了一個名爲playmusic的函數內,並通過執行 playmusic調用該函數。關於函數的內容,我們將在下面函數部分具體詳解。
創建mylist數組1
1 |
int mylist[]={0, 0, 0};
|
描述
初始化一個數組。
參數
-
數組類型: 選擇創建的數組類型,包括整數、長整數、小數、字符、字節、char、字符串。
-
數組名稱:爲創建的數組輸入一個名字。
範例
創建一個CHINA字符串數組。
1 2 3 4 5 |
char CHINA[]={'C', 'H', 'I', 'N', 'A'}; void setup(){ } void loop(){ }
|
創建mylist數組2
1 |
int mylist[3]={0,0,0};
|
描述
初始化一個數組。
參數
-
數組類型: 選擇創建的數組類型,包括整數、長整數、小數、字符、字節、char、字符串。
-
數組名稱:爲創建的數組輸入一個名字。
-
數組長度:指定數組的長度。
獲取數組mylist長度
1 |
sizeof(mylist)/sizeof(mylist[0]);
|
描述
獲取數組的長度。
參數
-
數組名稱: 需要獲取長度的數組名稱。
範例
獲取CHINA數組的長度。
1 2 3 4 5 6 7 8 |
int CHINA[]={'C', 'H', 'I', 'N', 'A'}; void setup(){ Serial.begin(9600); } void loop(){ Serial.println(sizeof(CHINA)/sizeof(CHINA[0])); while(true); }
|
獲取數組mylist第N項
1 |
mylist[(int)(N - 1)];
|
描述
獲取指定數組的第N項。
參數
-
數組名稱: 需要獲取內容的數組名稱。
-
變量N: 需要獲取數組的第N項。
範例
串口輸出字符型數組元素。
數組mylist第N項賦值
1 |
mylist[(int)(N - 1)] = 0;
|
描述
爲指定數組的第N項賦予特定的值。
參數
-
數組名稱: 需要獲取內容的數組名稱。
-
變量N: 需要賦值數組的第N項。
-
賦值內容: 需要替換的內容。
範例
串口輸出字符型數組元素。
創建二維數組array
描述
初始化一個二維數組。
參數
-
數組類型: 選擇創建的數組類型,包括整數、長整數、小數、字符、字節、char、字符串。
-
數組名稱:爲創建的數組輸入一個名字。
-
數組行數
-
數組列數
-
字符串:創建二維數組的來源。
給二維數組第M行N列賦值
描述
爲數組第M行第N列賦值。
參數
-
數組名稱:爲創建的數組輸入一個名字。
-
數組行數
-
數組列數
-
賦值:要賦予的值。
獲取數組array第M行第N列
描述
獲取數組array第M行第N列的內容。
參數
-
數組名稱:爲創建的數組輸入一個名字。
-
數組行數
-
數組列數
範例
串口輸出二維數組元素。
微信關注圖中張十三的博客公衆號,與張十三一起探討更多mixly開發問題: