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