21天學通C語言 學習筆記(7)

2021-10-01 13:55:45 字數 1116 閱讀 2966

為了處理更複雜的資料,c語言還定義了一些功能更強大的復合資料型別,如陣列型別、結構體型別、共用體型別和列舉型別。

陣列是同一資料型別的許多資料元素按某種順序排列在一起的集合,通過訪問陣列名和索引就可以訪問陣列中的任意元素。

本節將重點學習一下內容:

一維陣列是c語言中用來儲存和處理一維序列資料的資料型別。本節將討論一維陣列的定義、陣列元素的訪問和初始化、陣列中各元素位址的表示、陣列越界的問題。

一維陣列是用以儲存一維數列中資料的集合。陣列型變數的定義由4部分組成:陣列名、資料型別名、陣列操作符和陣列容量。

標準定義方式為: 資料型別名 陣列名 [陣列容量]

舉例說明:int array[4]; 上述定義是將變數array定義為儲存 4 個 int 型資料的陣列。

注意:陣列容量必須是常量表示式。

c語言中還允許以下方式在一條語句內定義多個陣列變數:int clour[10] , size[5] , shape[9] ; 其中,clour 的資料型別為 int [10]、size 的資料型別為 int [5]、shape 的資料型別為 int [9]。

通過使用陣列名、陣列操作符和索引的組合可以訪問陣列中的任一元素,標準形式 : 陣列變數名 [索引]

注意:索引必須為乙個整數的表示式;索引的值應大於或等於0,且小於陣列容量;陣列內元素編號從0開始,直到陣列容量的值減1。

陣列未經初始化會出現不可預期的問題。陣列的初始化就是在定義變數的同時給其中的陣列元素賦值,有三種形式:

形式一:資料型別 陣列名[n] = ;

形式二:給部分元素賦值,編譯器會自動把剩餘元素的記憶體空間初始化為0

形式三:定義中不給出容量大小,不推薦

陣列在記憶體中是作為乙個整體分配記憶體的,陣列元素的記憶體位址都是連續的 ,其差值為陣列儲存的資料型別的位元組長度值。陣列變數的值為陣列的首位址。

注意事項:使用陣列元素時,陣列索引超出了正常的範圍。 c語言並不檢查陣列索引是否越界,從而導致陣列使用範圍外的索引時,能夠訪問到陣列之外的空間,而這些空間有可能是分配給其餘變數的。因此,我們要避免陣列越界。即使是越界的陣列元素,其位址也是按一定規律遞增或遞減的。

字元陣列:char 陣列名 [陣列容量]

字串變數:一維字元陣列,使用字串常量初始化一維陣列,便可以得到乙個字串變數。

21天學通C語言 學習筆記(4)

本章將重點介紹c語言提供的三組基本資料型別的使用,包括 整型 字元型和浮點型。c語言的其他高階資料型別實質上都可以視為這些基本資料型別的組合。通過本章的學習,要掌握以下知識 c語言定義了4種整型資料型別以表示不同大小的整數數值。本節將介紹各種整型資料型別的位元組長度 整型常量和整型變數的使用,以及使...

21天學通C 閱讀筆記3

陣列 陣列是資料存放位址的集合,每個位址儲存相同型別的資料。int intarray 10 int 型別為4 個位元組,編譯器會分配 4 10 個位元組的連續記憶體給該陣列 陣列初始化 int intarray 2 一維陣列宣告 int intarray 2 對兩個元素都賦值 int intarra...

《21天學通C (第7版)》 17 6 問與答

21天學通c 第7版 問 vector會改變其儲存的元素的順序嗎?答 vector是一種順序容器,元素的儲存順序與插入順序相同。問 要將元素插入到vector中,應使用哪個函式?元素將插入到vector的什麼位置?答 成員函式push back將元素插入到vector末尾。問 哪個函式用於獲悉儲存在...