C++數組與指針

1. 使用數組的時候編譯器一般把它轉化為指針。

對數組元素使用取地址符就能得到指向該元素的指針。

C++數組與指針

一般使用數組名字的地方,編譯器會自動將其替換為一個指向數組首元素的指針;

如:string *p=num;//等價於p2=&num[0]

2.使用auto和decltype關鍵字時

C++數組與指針

數組作為auto變量的初始值時,得到的類型為指針;使用dectype時,不會有上述轉換。

3.指針也是迭代器

數組的指針支持迭代器的所有運算,如使用遞增運算符將指向數組元素的指針向前移動到下一個位置。

C++數組與指針

使用指針可以遍歷數組中的元素,這樣需要先獲得指向數組的第一個元素的指針和指向數組尾元素的下一位的指針。首元素指針容易獲得;獲得尾後指針需要一個特殊性質:獲取尾元素下一位置的那個並不存在的元素的地址。尾後指針不能運行解引用和遞增操作。

C++數組與指針

遍歷數組元素如下:

C++數組與指針

結果:

C++數組與指針

使用begin 和end函數遍歷:

這兩個函數容器的同名成員功能類似,但數組不是類類型,所以這兩個函數不是成員函數,使用方法是將數組作為它們的參數,返回指針類型。兩個函數定義在iterator頭文件中

C++數組與指針


分享到:


相關文章: