數(shù)組概念:在內(nèi)存中連續(xù)存儲(chǔ)的具有相同數(shù)據(jù)類型的一組數(shù)據(jù)的集合 。
注意:
- 數(shù)組中的數(shù)據(jù)類型必須都是一致的
- 數(shù)組在內(nèi)存中必須是連續(xù)的存儲(chǔ)空間
- 定義數(shù)組的時(shí)候,[]里面的值不能是變量,只能是常量 。例如int num[n] 。
- 使用數(shù)組的時(shí)候,[]里面的值可以是常量也可以是變量 。例如已經(jīng)定義了數(shù)組num[10],利用for循環(huán)遍歷的時(shí)候可以用num[i]來(lái)遍歷 。

文章插圖
如圖可以看出,數(shù)組元素在內(nèi)存中的存儲(chǔ)地址是連續(xù)的,尤其注意以下內(nèi)容的區(qū)分 。
- a[0]代表第0個(gè)元素
- &a[0]代表的是第0個(gè)元素的地址,在本例中&a[0]=01
- 數(shù)組名a代表數(shù)組,也代表著第0個(gè)元素的地址--->a == &a[0] ==01,所以說(shuō)數(shù)組名是一個(gè)常量(常量不能被賦值),也就是第0個(gè)元素的首地址 。
- &a代表整個(gè)數(shù)組的地址,在數(shù)值上 &a == &a[0] == a,但是意義上不同,&a代表的是整個(gè)數(shù)組的地址,而a和&a[0]是第0個(gè)元素的地址,下一條會(huì)介紹具體區(qū)別 。
- &a[0]+1 代表元素的地址+1,跨過(guò)一個(gè)元素,此時(shí)指向的是a[1]的首地址也就是05
- a+1 也代表元素的地址+1,跨過(guò)一個(gè)元素
- 而&a代表的是整個(gè)數(shù)組的地址,&a+1則表示跨過(guò)整個(gè)數(shù)組,此時(shí)地址變成21,這就是上面整個(gè)數(shù)組地址和第0個(gè)元素地址的區(qū)別,他們跨過(guò)的元素個(gè)數(shù)不同
一維數(shù)組初始化:在定義數(shù)組的同時(shí)進(jìn)行賦值,成為初始化 。
- 全局?jǐn)?shù)組如果不初始化,編譯器將將數(shù)組元素初始化為0.
- 局部數(shù)組如果不初始化,內(nèi)容將會(huì)是隨機(jī)的 。
#include<stdio.h>int num1[5];int main(){ int num2[5]; for (int i = 0; i < 5; i++) {printf("%d ", num1[i]); } printf("\n"); for (int i = 0; i < 5; i++) {printf("%d ", num2[i]); } return 0;}運(yùn)行結(jié)果如下:
文章插圖
注意:
- 若元素沒(méi)有全部被賦值,那么未被賦值的元素默認(rèn)會(huì)被賦值為0 。例如 int num[3]={1},那么此時(shí)num中的元素其實(shí)是 1,0,0 。
- []中不定義元素個(gè)數(shù),定義的時(shí)候必須初始化,因?yàn)閿?shù)組需要知道具體要開(kāi)辟幾個(gè)元素的空間 。例如int num[];int num[] = {1,2,3},此時(shí)num默認(rèn)有三個(gè)元素,元素個(gè)數(shù)由{}里面的個(gè)數(shù)來(lái)定 。

文章插圖
二維數(shù)組名int a[2] [3]

文章插圖
- a[0] [0] 代表第0行第0個(gè)元素
- &a[0] [0]代表第0行第0個(gè)元素的地址,也就是01
- a[0]代表第0行一維數(shù)組的數(shù)組名 a[0] = &a[0] [0]
- &a[0]第0行的地址01
- a 二維數(shù)組數(shù)組名,代表二維數(shù)組,也代表首行地址 &a[0]
- &a 二維數(shù)組的地址
- &a[0] [0] +1 元素地址+1,跨過(guò)一個(gè)元素
- a[0] +1 元素地址+1,跨過(guò)一個(gè)元素
- &a[0] +1 行地址+1,跨過(guò)一行
- a+1 行地址+1,跨過(guò)一行
- &a + 1 二維數(shù)組地址+1,跨過(guò)整個(gè)數(shù)組
- 首先,在C語(yǔ)言中,沒(méi)有字符串這種數(shù)據(jù)類型,C語(yǔ)言中的字符串其實(shí)上是char數(shù)組 。
- 在C++中有字符串類型,實(shí)際上是類模板,是一個(gè)類 。
經(jīng)驗(yàn)總結(jié)擴(kuò)展閱讀
- 累加和為 K 的子數(shù)組問(wèn)題
- C++和Java多維數(shù)組聲明和初始化時(shí)的區(qū)別與常見(jiàn)問(wèn)題
- 可持久化數(shù)組 P3919 【模板】可持久化線段樹(shù) 1
- LeetCode - 數(shù)組的旋轉(zhuǎn)總結(jié)
- .NET源碼學(xué)習(xí) [算法2-數(shù)組與字符串的查找與匹配]
- LeetCode - 二維數(shù)組及滾動(dòng)數(shù)組
- Excel怎么使用MMULT函數(shù)返回兩個(gè)數(shù)組的矩陣乘積呢?
- 非零 excel用數(shù)組公式獲取一列中非空值,看一看
- 索引超出了數(shù)組界限如何解決
- 數(shù)一數(shù)的數(shù)組詞有哪些
