陣列操作 指標

2021-06-27 01:51:35 字數 774 閱讀 8340

陣列一旦定義,就不允許再新增新元素。

如果必須在陣列中新增新元素,必須自己管理記憶體:要求系統重新分配乙個新的記憶體空間用於存放更大的陣列,然後把原陣列的所有元素複製到新分配的記憶體空間中。

在用下標訪問元素時,vector使用vector::size_type作為下標的型別,而陣列下標的正確型別則是size_t

陣列越界只能靠自己注意細節,通過編譯並執行的程式仍然存在致命的錯誤,這並不是不可能的。

注:導致安全問題的最常見原因是所謂的「緩衝區溢位」錯誤,當我們在程式設計時沒有檢查下標,並且引用了越出陣列或其他類似資料結構邊界的元素時,就會導致這類錯誤。

指標是指向某種型別物件的復合資料型別,是用於陣列的迭代器:指向陣列中的乙個元素。

在指向陣列元素的指標上使用解引用操作符*和自增操作符++,與在迭代器上的用法類似。

對指標進行解引用操作,可獲得該指標所指物件的值。

與迭代器一樣,指標提供對其所指物件的間接訪問,只是指標結構更通用一些。

與迭代器不同的是,指標用於指向單個物件,而迭代器只能用於訪問容器內的元素。

具體來說,指標儲存的是另乙個物件的位址。

eg:string s("hello world");

string  *sp  =  &s;     //定義了乙個指向string型別的指標sp,並初始化sp使其指向string型別的物件s。

&取位址操作符只能用於左值,才能返回的是該物件的儲存位址。

由於用於vector型別,string型別或內建陣列的下標操作和解引用操作生成左值,因為可對這兩種操作的結果做取位址操作。

操作指標陣列

char a 2 char b 3 strcpy b 1 a 1 這樣編譯沒錯誤,執行就會提示錯誤。因為b中元素僅僅是指標而已,只為存放指標名而分配了空間!就是說,當你進行這樣的複製操作時,b中並不具有儲存乙個字元陣列的空間。為了解決這樣的問題,乙個可以考慮的方法是,可以選擇使用自由儲存區中的空間,...

指標 指標的指標和陣列操作例程

include include include int main printf the data in pimg for int i 0 i 4 i pointer of pointer byte ppimg int k 4 ppimg new byte 2 for int i 0 i 2 i fo...

php陣列指標操作詳解

陣列指標的操作 程式設計客棧 移動陣列指標的操作 next 向下 同時會獲得當前元素的值。prev 向上同時會獲得當前元素的值。end 移動到最後乙個元素單元 獲得最後乙個元素的值 reset 移動到第乙個單元 獲得第乙個元素的值。如果移動不成功,返回fa 引數都為需要操作的陣列,並且是引用傳遞。獲...