上一篇我們介紹了一個滿好用的函式庫,只要知道怎麼使用math.h的很多函式,都可以在我們需要數學運算時幫上很大的忙。
今天我們來介紹一下Array吧!
還記得第五篇我們有提到資料型態像是不同大小的盒子,而第六篇我們談到變數就像被寫上標籤的盒子,可以存放資料內容,等待我們需要的時候就能呼叫變數做任何處理。
那array又是什麼樣的概念呢?
array的中文翻譯會叫他陣列,如果說變數是有特定大小(資料型態決定)的盒子,那array就像一棟擁有同樣大小且疊再一起的盒子大樓,其中的每個盒子大小都是一致的,而各自的盒子(不同樓層)又可以存放不同的資料。
如下圖這個樣子:
而array的index編號(可以想像成樓層編號)則是由0.1.2.3等持續往後編,所以如果陣列大小(總樓層數)是8,編上樓層的話會長這樣:
以下面這段程式碼為例:
int arr[] = {1,2,3,4,5,6,7,8};
陣列arr的資料內容對應index(樓層編號)如下:
我們前面大概介紹了陣列是什麼東西,接下來我們來介紹一下怎麼使用吧!
(1) 只給予陣列大小
int arr[10];
(2) 不給陣列大小,但直接賦值
int arr[] = {1,2,3,4,5,6,7,8};
(3) 給予陣列大小、賦值
int arr[5] = {1,2,3,4,5};
(1) 陣列內的資料內容
如以下:
arr[2] = 777;
(2) 實際應用
#include <stdio.h>
int main(){
int arr[]={1,2,3,4,5,6,7,8};
printf("data of arr\n\n");
printf("index 0: %d\n", arr[0]);
printf("index 1: %d\n", arr[1]);
printf("index 2: %d\n", arr[2]);
printf("index 3: %d\n", arr[3]);
printf("index 4: %d\n", arr[4]);
printf("index 5: %d\n", arr[5]);
printf("index 6: %d\n", arr[6]);
printf("index 7: %d\n", arr[7]);
printf("------\n\n");
arr[2] = 777;
printf("data of arr\n\n");
printf("index 0: %d\n", arr[0]);
printf("index 1: %d\n", arr[1]);
printf("index 2: %d\n", arr[2]);
printf("index 3: %d\n", arr[3]);
printf("index 4: %d\n", arr[4]);
printf("index 5: %d\n", arr[5]);
printf("index 6: %d\n", arr[6]);
printf("index 7: %d\n", arr[7]);
printf("------\n\n");
arr[2] = arr[2]-111;
printf("data of arr\n\n");
printf("index 0: %d\n", arr[0]);
printf("index 1: %d\n", arr[1]);
printf("index 2: %d\n", arr[2]);
printf("index 3: %d\n", arr[3]);
printf("index 4: %d\n", arr[4]);
printf("index 5: %d\n", arr[5]);
printf("index 6: %d\n", arr[6]);
printf("index 7: %d\n", arr[7]);
return 0;
}
變數名稱使用時會直接代表其資料內容,要找到變數地址時還需使用到「&」,但陣列名稱所代表的並不是陣列的資料內容,而是陣列地址本身,所以當你想要printf array時,並不會依序列印出array的資料內容。
#include <stdio.h>
int main(){
int data = 5;
int arr[] = {1,2,3,4,5};
printf("data: %d\n", data);
printf("address of data: %p\n", &data);
printf("arr : %p\n", arr);
return 0;
}
int arr[10];
int arr[]={1,2,3,4,5,6,7};
int arr[5]={1,2,3,4,5};
陣列的index由0開始依序往後
使用陣列內的資料內容時須以特定格式
arr[2] = 777;
#include <stdio.h>
int main(){
int data = 5;
int arr[] = {1,2,3,4,5};
printf("data: %d\n", data);
printf("address of data: %p\n", &data);
printf("arr : %p\n", arr);
return 0;
}