21天学通C语言-学习笔记(7)
數組和字符串
為了處理更復雜的數據,C語言還定義了一些功能更強大的復合數據類型,如數組類型、結構體類型、共用體類型和枚舉類型。
數組是同一數據類型的許多數據元素按某種順序排列在一起的集合,通過訪問數組名和索引就可以訪問數組中的任意元素。
本節將重點學習一下內容:
- 一維數組的使用;
- 具名變量的使用;
- 數組越界的風險;
- 二維數組的使用;
- 多維數組的使用。
8.1 一維數組
一維數組是C語言中用來存儲和處理一維序列數據的數據類型。本節將討論一維數組的定義、數組元素的訪問和初始化、數組中各元素地址的表示、數組越界的問題。
8.1.1 定義一維數組
一維數組是用以存儲一維數列中數據的集合。數組型變量的定義由4部分組成:數組名、數據類型名、數組操作符和數組容量。
標準定義方式為: 數據類型名 數組名 [數組容量]
舉例說明:int array[4]; 上述定義是將變量array定義為存儲 4 個 int 型數據的數組。
注意:數組容量必須是常量表達式。
C語言中還允許以下方式在一條語句內定義多個數組變量:int clour[10] , size[5] , shape[9] ; 其中,clour 的數據類型為 int [10]、size 的數據類型為 int [5]、shape 的數據類型為 int [9]。
8.1.2 訪問一維數組
通過使用數組名、數組操作符和索引的組合可以訪問數組中的任一元素,標準形式 : 數組變量名 [索引]
注意:索引必須為一個整數的表達式;索引的值應大于或等于0,且小于數組容量;數組內元素編號從0開始,直到數組容量的值減1。
8.1.3 初始化一維數組
數組未經初始化會出現不可預期的問題。數組的初始化就是在定義變量的同時給其中的數組元素賦值,有三種形式:
形式一:數據類型 數組名[N] = {值0,值1,值2,…,值(N-1)};
形式二:給部分元素賦值,編譯器會自動把剩余元素的內存空間初始化為0
形式三:定義中不給出容量大小,不推薦
8.1.4 數組的存儲形式
數組在內存中是作為一個整體分配內存的,數組元素的內存地址都是連續的 ,其差值為數組存儲的數據類型的字節長度值。數組變量的值為數組的首地址。
注意事項:使用數組元素時,數組索引超出了正常的范圍。 C語言并不檢查數組索引是否越界,從而導致數組使用范圍外的索引時,能夠訪問到數組之外的空間,而這些空間有可能是分配給其余變量的。因此,我們要避免數組越界。即使是越界的數組元素,其地址也是按一定規律遞增或遞減的。
9.1 字符串
字符數組:char 數組名 [數組容量]
字符串常量:包含在一對引號中的字符的集合,可以是句子,也可以是關系表達式。對于任何一個字符串常量,C語言存儲其有效的內容的同時,還會在它后面加上一個‘\0’,內存中的空間就會多一個字符。
字符串變量:一維字符數組,使用字符串常量初始化一維數組,便可以得到一個字符串變量。
總結
以上是生活随笔為你收集整理的21天学通C语言-学习笔记(7)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: idea maven web工程明明添加
- 下一篇: pca图解读_干货!手把手一步一步解读P