一、數組
1.數組的基本概念
數組:按順序排列的同類數據元素的集合稱爲數組。數組數組(Array)也是一種複合數據類型,它是由一系列相同類型的元素(Element)組成。例如: 定義一個由4個int類型元素組成的數組count:int count[4]。數組count的4個元素的儲存空間是相鄰的。數組成員可以是基本數據類型,也可以是符合數據類型。
2.四種後綴運算符及五種單目運算符
- 後綴運算符:後綴 ++、後綴--、數組取下標[]、函數調用(),還有一個結構體取成員的後綴運算符.,
- 單目運算符:前綴++、前綴--、正號+、負號-、邏輯非!
數組下標也可以是表達式。但表達式的值必須是整形的。例如:
int i=10;
count[i]=count[i+1];
數組可以被初始化,未賦初值的元素用0來初始化,例如:
int count[4]={3,2};則count[0]等於3,count[1]等於2,後面兩個元素等於0。
二、指針
1.指針的基本概念
所謂指針是一個用來指示一個內存地址的計算機語言的變量或中央處理器中的寄存器。指針一般出現在比較近機器語言的語言,如彙編語言或C語言中。指針一般指向一個函數或一個變量。
2.指向指針的指針與指針數組
指針可以指向基本類型,也可以指向複合類型,因此也可以指向另外一個指針變量,成爲指向指針的指針。
int i;
int *pi=&i;
int **ppi=π
這樣定義以後,表達式**ppi取pi的值。
- 數組中的每個元素可以是基本類型,也可以是複合類型,因此也可以是指針類型。例如:定義一個數組a由10個元素組成,每個元素都是int *指針: int *a[10];這稱爲指針數組。
- int *a[10];和int **pa;之間的關係類似於int a[10];和int *pa;之間的關係:a是由一種元素組成的數組,pa則是指向這種元素的指針。
3.堆和棧的區別
- 管理方式不同;
- 空間大小不同;
- 能否產生碎片不同;
- 生長方向不同;
- 分配方式不同;
- 分配效率不同;