09c語言學習資料 三 陣列

2021-05-24 05:10:41 字數 2542 閱讀 7406

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.陣列中的元素在記憶體中是...