4-1至
4-3一維陣列,二維陣列,字元陣列與字串
資料型別包括了基本型別,構造型別,指標型別,和空型別。其中基本型別包括了整型,字元型,浮點型和列舉型別。而構造型別包括了陣列型別,結構體型別和共用體型別。
構造型別資料是由基本型別資料按一定規則組成的。
1、一維陣列
程式裡資料實際上是存放在位址段裡面的,定義乙個整型變數int a
,則開闢乙個
4位元組(根據編譯環境的不同大小會不一樣,不過現在整型一般是
4位元組)的空間:
位(bit)。
定義乙個整型陣列int a[5]
,開闢5
個連續的
4位元組空間:
定義乙個短整型陣列short int b[5]
,開闢5
個連續的
2位元組空間:
有時取a[k+1]
,這個「
1」其實在位址段裡面是加
4個位元組的,這樣就直接跳到下乙個整型元素了
(1)、一維陣列的初始化:
如 int a[5]=;
這樣首元素a[0]
的值為3
,元素a[1]
的值為4
,一直到
a[4]
的值為7。
注意:1
、不存在
a[5]
的,因為是從
0開始的,
5個陣列元素是
a[0]
到a[4]
。如果讀取
a[5]
的話就越界了
2、定義時元素的個數不能超過陣列括號裡的個數,不然就越界了。
如int a[3]=;
是錯的
如果元素的個數小於陣列括號裡的個數,那麼剩餘沒有賦值的元素值為0。
如int a[7]=;
那麼後面的3
個元素值為
0。就是
a[0]=1,a[1]=2,a[2]=3,a[3]=4,a[4]=0,a[5]=0,a[6]=0
如果這樣寫:int a[ ]=;
也是可以的,這樣括號內的數字預設為
4個,陣列共有
4個元素
如果這樣寫:int a[4]=; 那麼4
個元素的值都初始化為0
如果這樣寫:int a[4]=;
則只是開闢了空間,沒有賦予元素任何的值
(2)、一維陣列的引用:
陣列的格式:陣列名[下標]
在訪問陣列元素時,陣列下標的資料型別允許是 整形表示式,如2,3
,2+3
,a+1
,a+b
或者是整型常量的形式:
#define size 10 int a[size];
而初始化陣列時,和訪問陣列唯一的區別是下標不能出現變數,
如a+1
,a+b
就不行了,因為
c語言中不允許對陣列的大小做動態定義,即陣列的大小不依賴於程式執行過程中變數的值
陣列元素a[1]
是乙個值。所以如果用賦值語句對它賦值的話
scanf
語句裡面還是要加
&取位址符號的。如
scanf(「%d」,&a[1]);
2、二維陣列
,實際上也是存放在一條連續的位址段裡
看上去a[0+1][2]
裡面是加了乙個」1」,實際上位址段裡面跳過了4
個元素的位址,這個了解一下,第二學期的指標那裡會學到。
(1)、二維陣列的初始化
仔細看書上第137
頁到138
頁,有各種二維陣列的初始化方式
如果要對全部元素都賦初值,則定義陣列時對第一維的長度可以不指定,但是第二位的長度不能省。如int a[ ][4]=
(2)、二維陣列的引用
遵循一維陣列的引用方法注意
3、字元陣列與字串
(1)、字元陣列的定義:
定義:char a[5];
賦值:a[0]=』i』;a[1]=』 』;a[2]=』a』;a[3]=』m』;a[4]=』 』;
或者合起來寫:char a[5]=;
如果:char a[8]=; 那麼最後三個未賦值的元素系統自動定為』/0』。
如果定義時用int a[5]
也可以的,但是浪費儲存空間
注意這裡的字元陣列都是用單引號』』單個賦值的
字串是作為字元陣列來處理的,字元』/0』作為「字串結束的標誌」,字元陣列中在遇到字元』/0』時,表示字串結束,由它前面的字元組成字串。
(2)、字串的定義:
單個定義:char a[8]=; 只要最後乙個是系統自動定義的』/0』就行
注意這時系統會自動在這串字元的最後加上乙個』/0』,陣列a
的長度不是5而是
6,一定注意。
此例如果要在下標處加入數字的話,也一定要大於等於6
,如果
(這裡是用」」連續初始化,如果之前用』』單個賦值:char a[5]= ; 則是可以的,因為這裡系統不會自動在最後加乙個字元』/0』)
3個元素都為』/0』
(3)、字元陣列的輸入輸出
09c語言學習資料 一 資料型別 運算子和表示式
大二那時當過c語言助教,答疑的時候時常發現新生們遇到各種各樣的問題,看著他們糾結的樣子很心痛,很想讓他們少走些彎路,一時激動通宵寫了一些概括的教程。那時也發給了自己協會裡的新生們。雖然知道發下去他們也不太會去看的,可是我想我至少努力過了。真的希望那時他們能好好的學c語言,因為這門課真的只有花心思進去...
C語言學習(三)陣列
型別說明符 陣列名 常量表示式 1.1 在定義陣列時對陣列元素賦以初值。例如 int a 10 1.2 可以只給一部分元素賦值例如 int a 10 其餘資料為0 1.3 使乙個陣列中全部元素值為0int a 10 或 int a 10 1.4 在對全部陣列元素賦初值時,由於資料的個數已經確定,因此...
c語言學習 陣列
我們在程式設計時往往需要儲存很多數,這個時候我們就需要陣列這個工具了 1.陣列的宣告 型別 變數名稱 元素數量 double weight 20 元素數量必須是整數 定義 是一種容器 放東西的東西 特點是 1.其中所有的元素具有相同的資料型別 2.一旦建立,不能改變大小 3.陣列中的元素在記憶體中是...