數(shù)組
百度百科:所謂數(shù)組,是有序的元素序列。若將有限個類型相同的變量的集合命名,那么這個名稱為數(shù)組名。組成數(shù)組的各個變量稱為數(shù)組的分量,也稱為數(shù)組的元素,有時也稱為下標變量。用于區(qū)分數(shù)組的各個元素的數(shù)字編號稱為下標。數(shù)組是在程序設(shè)計中,為了處理方便, 把具有相同類型的若干元素按無序的形式組織起來的一種形式。這些無序排列的同類數(shù)據(jù)元素的集合稱為數(shù)組。
按我的話來說,就是一堆同類型元素的集合體,按照連續(xù)的存儲方式在內(nèi)存存儲。
出現(xiàn)的原因
比如在定義整型數(shù)據(jù)時,需要定義n個整型變量,那就要寫n個定義的語句,這樣的工作是十分繁瑣且無意義的,就需要數(shù)組的出現(xiàn),只要定義一條語句就可以。
一維數(shù)組定義與使用
//數(shù)據(jù)類型 數(shù)組名[元素個數(shù)]
int array[10]; //定義一個整形數(shù)組,有10個元素
賦值操作
int arra[5] = {1,2,3,4,5}; //定義時賦值
int arr[5] = {1,2,3}; //可以賦值部分,剩余的值均為0
int a[5] = {0}; //直接賦值為0
int b[] = {1,2,3,4,5}; //定義后面緊跟賦值操作時,可以省略賦值操作
int array[5];
array[0] = 1; //通過數(shù)組下標賦值
array[1] = 2;
array[2] = 3;
array[3] = 4;
array[4] = 5;
獲取數(shù)組個數(shù)
int b[] = {1,2,3,4,5};
int size = sizeof(b)/sizeof(b[0]); //獲取數(shù)組大小
注意下標從0開始,因為機器的底層都是二進制,就0和1,所以下標從0開始。到元素個數(shù)-1結(jié)束。要避免數(shù)組越界,不然會操作非法內(nèi)存,出現(xiàn)段錯誤。
二維數(shù)組
二維數(shù)組由多個一維數(shù)組組成,使用方法與一維數(shù)組無異。
//數(shù)據(jù)類型 數(shù)組名[元素個數(shù)][元素個數(shù)]
int array[2][3]; //定義一個整形二維數(shù)組,有2*3個元素,也可以理解成兩行三列
在定義時,后面沒有賦值操作,兩個[ ]內(nèi)元素個數(shù)不可省略,不然編譯器不知道分配多大內(nèi)存,報錯。
賦值操作:與一維數(shù)組差不多
int array[][3] = {1,2,3,4}; //系統(tǒng)自動計算為2*3的數(shù)組,后面的數(shù)據(jù)補為0
int arra[2][3] = {0};
int arr[2][3] = {{1,2,3},{4,5,6}};//完全賦值
int ar[2][3] = {1,2,3,4,5,6}; //和上面的方面一樣,系統(tǒng)會自動將數(shù)據(jù)分開
int a[2][3];
a[0][0] = 1; //下標賦值法
獲取數(shù)組元素個數(shù)
int r = sizeof(a)/sizeof(a[0]); //獲取行
int j = sizeof(a[0])/sizeof(a[0][0]); //獲取列
數(shù)組大小 = 元素類型的字節(jié)數(shù)*元素個數(shù)
數(shù)組本質(zhì)
數(shù)組就是多個連續(xù)的同種類型的內(nèi)存塊,本質(zhì)還是一個數(shù)據(jù)。二維數(shù)組并不是數(shù)據(jù)在內(nèi)存中分行與列,只是讓我們感性認知,取二維數(shù)組這個名字。本質(zhì)就是多個一維數(shù)組連在一起,組成二維數(shù)組。
注意事項
使用數(shù)組謹記下標從0開始,到元素個數(shù)減一結(jié)束,如果數(shù)組下標越界,會操作非法內(nèi)存,程序可能會出錯,調(diào)試會很痛苦。
數(shù)組的簡單介紹結(jié)束。