C語言複習(六) 陣列

2021-10-02 23:35:15 字數 2866 閱讀 4212

從元素型別的角度看,陣列是相同型別的變數的有序集合;

從記憶體的角度看,陣列是連續的一大片記憶體空間

陣列的初始化比較簡單,這裡就不詳細贅述了,現在就總結幾個注意點。

陣列首元素的位址和陣列位址是兩個不同的概念。

陣列名代表陣列首元素的位址,它是乙個常量。

陣列首元素的位址和陣列的位址是相等的。

c語言規定

int a[10]

;printf

("%d"

,a);

//獲取陣列首元素的位址

printf

("%d"

,&a)

;//獲取整個陣列的首位址

接下來總結三個重要的概念

陣列型別

我們知道,陣列也是一種資料型別。

陣列的型別是由元素的型別和陣列的大小共同決定的。

例如:int a[5] 的型別為int [5];

#include

#include

#include

intmain

(void

)for

(i =

0; i <

5; i++

)system

("pause");

return0;

}

陣列指標型別

陣列指標,顧名思義,它是乙個指標,它指向乙個陣列型別變數。

定義陣列指標,有三種方法:

1、通過陣列資料型別定義陣列指標

typedef

int(array)[5

];//定義乙個陣列資料型別

array *p;

//用這個陣列資料型別定義乙個指標變數

2、宣告乙個陣列指標型別

typedef

int(

*array)[5

];//定義乙個陣列指標型別

array p;

//定義乙個陣列指標型別變數

3、直接定義

int

(*p)[10

];

看這個例子

#include

#include

#include

//陣列指標型別

intmain

(void

) for (i = 0; i < 5; i++)

*/// 2

int a[5]

;int

(*p)[5

]=&a;int i;

for(i =

0; i <

5; i++

)for

(i =

0; i <

5; i++

)system

("pause");

return0;

}

陣列指標型別變數

這個很好理解,就不在贅述了。

#include

#include

#include

//陣列型別

intmain1

(void

)for

(i =

0; i <

5; i++

)system

("pause");

return0;

}//陣列指標型別

intmain2

(void

) for (i = 0; i < 5; i++)

*/// 2

int a[5]

;int

(*p)[5

]=&a;int i;

for(i =

0; i <

5; i++

)for

(i =

0; i <

5; i++

)system

("pause");

return0;

}//多維陣列本質

intmain

(void)}

for(i =

0; i <

3; i++

)printf

("\n");

}int

(*p)[5

]= a;

for(i =

0; i <

3; i++

)printf

("\n");

}system

("pause");

return0;

}

多維陣列名的本質是乙個陣列指標

(a+i) 代表整個第i行的位址  二級指標

*(a+i) 代表第i行首元素的位址 一級指標

*(a+i)

+ j ==

=>

& a[i]

[j]*(*

(a+i)

+ j)===

> a[i]

[j]元素 的 值

a[i]

[j]<=

==>*(

*(a+i)

+ j)

a[i]===

> a[

0+i]

==>

*(a+i)

; a[i]

[j]==

= a[

0+i]

[j]==

>

*(a+i)

[j]==

=>

*(a+i)[0

+ j]

==>*(

*(a+i)

+ j)

陣列就簡單的總結到這裡。

c語言複習 陣列

注 本文是蘇小紅版c語言程式設計第8章的筆記 定義陣列時不可以用變數定義陣列的大小 int score 5 int score static int score 5 static int score 5 陣列第二維的長度宣告永遠都不能省略,因為c中二維陣列的元素是按行存放的 即現存第一行,再存第二行...

C語言複習 陣列

1陣列 1.1 一維陣列的初始化 陣列包括 陣列的建立 在建立陣列時,必須定義陣列的大小和型別,陣列的大小不能為零,陣列中元素型別都是相同的。例 int arr 10 內必須是常量陣列的初始化 例 int arr1 3 int arr2 在這裡,我們arr 3 裡邊的數字可以不用寫 int arr3...

C語言複習陣列

陣列的初始化 當賦值的元素少於陣列總體元素的時候,剩餘的元素自動初始化為 0 對於short int long,就是整數 0 對於char,就是字元 0 對於float double,就是小數 0.0。沒賦值的都為0 根據 ascii 碼表,字元 0 的編碼值就是 0。下面的形式將陣列的所有元素初始...