1 一維數(shù)組的定義: 類型 ? 數(shù)組名[ 元素個數(shù)]
注意點: [ ?] ?里面的個數(shù)必須是一個固定值 ,可以是一個常量或是一個常量表達式。絕對不能使用變量或是變量表達式來表示元素個數(shù)。
int a[5] // 整形常量
int b['A'] // 字符常量
int c[4*7] // 整形常量表達式
2 一維數(shù)組的存儲
定義數(shù)組時,系統(tǒng)將按照數(shù)組的類型和元素個數(shù)分配一段連續(xù)的存儲空間來存放數(shù)組元素。例如數(shù)組int a[3] 占據(jù)了連續(xù)12字節(jié)的存儲空間。(在64位編譯器環(huán)境下,一個int 類型占4個字節(jié))要特別注意的是,數(shù)組名代表著整個數(shù)組的地址,也就是數(shù)組的起始位置。其實a 并不是變量,而是常量,它代表著數(shù)組的地址。數(shù)組a 的地址是ffc1,a[0]的地址是ffc1,因此a ==&a[0],即第一個元素的地址就是整個數(shù)組的地址。
3 一維數(shù)組的初始化
int a[2] ={4, 8};C 語言中編譯器是不會對數(shù)組下標 越界進行檢查的,所以訪問數(shù)組元素時要小心
數(shù)組初始化時的賦值方式只能適用于數(shù)組的定義,定義之后只能一個元素一個元素的賦值(也就是說數(shù)組不能整體賦值)
int a[3]; a[3] = {3, 8, 9}; // 錯誤寫法
原因分析: 首先a[3] 代表訪問數(shù)組的第四個元素,數(shù)組下標越界。其次給?a[3]賦值也應該是int類型的整數(shù),不應該是{}
a = {2. 4.5}; //錯誤寫法 ? 錯誤原因:a是數(shù)組名,代表著數(shù)組的地址,它是個常量,給常量賦值那肯定錯了
4 ?一維數(shù)組與函數(shù) 參數(shù)
一維數(shù)組元素作為函數(shù)實參,與同類型簡單變量作為實參一樣,是單向的值傳遞,即數(shù)組元素的值傳遞給形參,形參的改變不影響 實參