1、數(shù)組,結(jié)構(gòu)體和指針是C語言里面最難的部分,如果在編程中可以熟練的運(yùn)用這三樣工具,會大大地提高開發(fā)效率,簡化程序結(jié)構(gòu),提成代碼運(yùn)行速度。
2、數(shù)組
(1)C語言中的數(shù)組分為一維數(shù)組和二維數(shù)組,數(shù)組其實就是在計算機(jī)的內(nèi)存中給分配一塊空間,這個空間根據(jù)數(shù)組的數(shù)據(jù)類型確定。
(2)一維數(shù)組:一維數(shù)組是最常用的形式,定義方式如下圖所示。
上面三種定義方法區(qū)別只是在給定初始值上,數(shù)組名是tab,數(shù)組類型是char,上面三種方式都是定義了一個字符型名字叫做tab的數(shù)組,數(shù)組長度12個字節(jié),第一個數(shù)據(jù)地址為0,數(shù)組里面數(shù)據(jù)調(diào)用的方法如下圖所示。
這段程序的運(yùn)行結(jié)果是在屏幕上打印出0這個數(shù)字。
(3)二維數(shù)組:二維數(shù)組用的地方不多,,定義方式如下圖所示。
上面三種方法都是定義二維數(shù)組的方式,都定義了一個2行7列的二維數(shù)組,數(shù)組名tab,數(shù)組類型char,第一個中括號里面指定行的位置,第二個中括號里面指定列的位置,第一個元素是tab[0][0],元素排列如下表所示。
0 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
7 | 8 | 9 | 10 | 11 | 12 | 13 |
數(shù)組里面數(shù)據(jù)調(diào)用的方法如下圖所示。
這段程序的運(yùn)行結(jié)果是在屏幕上打印出9這個數(shù)字。
3、結(jié)構(gòu)體
(1)結(jié)構(gòu)體是由一批數(shù)據(jù)組合而成的一種新的數(shù)據(jù)類型。組成結(jié)構(gòu)型數(shù)據(jù)的每個數(shù)據(jù)稱為結(jié)構(gòu)型數(shù)據(jù)的“成員”,舉個學(xué)生信息的例子來說明結(jié)構(gòu)體,一個學(xué)生信息最起碼需要有性別,姓名,年齡,家庭住址這些信息,而這些信息的數(shù)據(jù)類型肯定是不一樣的,比如年齡的數(shù)據(jù)類型一般就會用整型表示,但是性別,姓名這些就需要用字符串來表示(C語言中無法定義字符串變量,所以一般字符串變量就是用一維數(shù)組來實現(xiàn)),那么這個結(jié)構(gòu)體就應(yīng)該是:
struct 學(xué)生信息{
char姓名[3];
int年齡;
};
(2)結(jié)構(gòu)體的創(chuàng)建方式如下圖所示。
方法如
上面是三種創(chuàng)建結(jié)構(gòu)體的方式,其中前兩種創(chuàng)建的結(jié)構(gòu)體名稱就是Data1,里面有一個char類型的20個字節(jié)的數(shù)組num和一個整型的result。但是第三種方法,由于使用了typedef,這個關(guān)鍵字的意思是給新的結(jié)構(gòu)體重新起一個名字,所以第三種方法實際是創(chuàng)建了一個新的Data類型的結(jié)構(gòu)體,最后22行的Test才是這第三種方法創(chuàng)建的結(jié)構(gòu)體的名字。
(2)結(jié)構(gòu)體的引用:結(jié)構(gòu)體上面已經(jīng)創(chuàng)建好了,那么如何引用呢,結(jié)構(gòu)體引用的時候一般都是結(jié)構(gòu)體名稱+”.”+元素名稱,如下圖所示。
下圖所
示。
注:無論結(jié)構(gòu)體用那種方式定義,通常引用都是這種格式(有一種特殊情況)。
-
C語言
+關(guān)注
關(guān)注
180文章
7604瀏覽量
136692 -
數(shù)組
+關(guān)注
關(guān)注
1文章
417瀏覽量
25939 -
結(jié)構(gòu)體
+關(guān)注
關(guān)注
1文章
130瀏覽量
10840
發(fā)布評論請先 登錄
相關(guān)推薦
評論