我們在學習了c語言基礎知識後,應該對陣列有基本的了解與掌握,現在對陣列基本知識進行總結,如下所示:
1.一維陣列
(1)建立和初始化
建立:陣列是一類相同型別元素的集合
建立方式:type_t arr_name [const_n]
初始化:在建立陣列的同時給陣列內容一些合理的初始值,元素個數按初始化內容決定。
例: int arr[10] =
(2)使用
下標引用操作符: [ ]
通過下標訪問方式使用
(3)儲存
陣列在記憶體中連續存放
例: &arr[0] = 0046fdb4
&arr[1] = 0046fdb8
&arr[2] = 0046fdbc
(4)指標訪問
陣列的陣列名是指標首元素的位址。
通過對陣列名+整數的運算,可以獲取到陣列中每個元素的位址。
(5)長度計算
若宣告中未給出陣列的長度,編譯器就會把陣列的長度設定為剛好能夠容納所有的初始值的長度。
2.多維陣列
若某個陣列的維數不止1個,就被稱為多維陣列。
(1)建立和初始化
例: int matrix[6][10];
int d[3][5][7]
(2)使用
通過下標訪問方式使用
(3)儲存
例: int arr[2][3]
儲存形式:
(4)指標訪問
指標指向整個陣列
例: int vector[10], * vp = vector;
(5)長度計算
編譯器初始化列表中包含的初始值個數,即可推算出其他維數。
3.總結
(1)在絕大多數表示式中,陣列名的值是指向陣列的第1個元素的指標,這個規則有兩個例外:
sizeof
返回整個陣列所占用的位元組而不是乙個指標所占用的位元組;
&單目操作符返回乙個指向陣列的指標,而不是乙個指向陣列第
1個元素的指標的指標。
(2)除優先順序不同以外,下標表示式array[value]和間接訪問表示式
*(array+(value))
是一樣的。
(3)指標和陣列並不想等。
(4)陣列名作為函式引數傳遞時,實際傳遞給函式的是乙個指向陣列第1個元素的指標。
(5)陣列也可以用初始值列表進行初始化,初始值列表就是由一對花括號包圍的一組值。
(6)多維陣列實際上是一維陣列的一種特型,就是它的每個元素本身也是乙個陣列。
陣列基本知識
陣列 一維陣列 二維陣列的初始化 1 按行連續賦值,即將所有資料寫在乙個大括號內,按照陣列元素排列順序對元素賦值。2 再為所有元素賦初值時,可以省略行下標,但是不可以省略列下標。3 按行分段賦值,可以分行給陣列元素賦值。字元陣列的初始化 1 逐個字元賦給陣列的各個元素。初始化利用大括號,每個字元用單...
陣列(一) 基本知識
基於 c primer p101 內建陣列型別和其他內建型別一樣,其實現與硬體密切相關,體現了大多數計算機硬體本身具備的能力。因此相較於標準庫型別 string 和 vector,在靈活性上稍顯不足。1.定義和初始化 陣列在編譯時維度應是已知的,即必須是乙個常量表示式。unsigned cnt 42...
基本知識總結一
一.物件導向和面向過程的區別 面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了。物件導向是把構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。例如五子棋,面向過程的設計思路就是...