有三種組合方式,分別為:
vectorvec;
const vectorvec;
const vectorvec;
以第一種方式宣告時:效果和 vectotvec 一樣。
以第二種方式宣告時:vec的元素既不能修改,也不能增加,只能訪問。
int main()這裡有乙個地方要注意,當以const宣告乙個vector時,若想定義乙個指標指向該vector中的元素,則指標也必須宣告為const; int v = vec[0]; //可以訪問
//不能改變元素數量
//vec[0] = 4; //不能修改元素值
}
int main()以第三種方式宣告時:效果和第二種方式一樣。; //int* p = &vec[0]; //會報錯
const int* p = &vec[0]; //正確做法
}
以上的**來自我從《essentialc++》中看到的乙個函式:
//函式的作用是返回vector或者資料的第乙個元素,若是vector為空,則返回nullptr該函式宣告雖然在編譯時並沒有報錯,可是卻並不穩妥,因為&vec[0]是乙個const的指標,可是返回型別並沒有帶上const關鍵字,正確做法應該在返回值前加上const。templateelemtype* begin(const vector& vec)
ps:來自官方文件的資料好像是錯的:資料來自:
const常量和指標搭配
const常量和指標搭配 1.const int p 限制根據指標修改對應的記憶體 2.int const p 限制根據指標修改對應的記憶體 3.int const p 情況1.include include intmain 以上 含有const int p 限制根據指標修改對應的記憶體 情況2.i...
指標和const限定符搭配
指標和const搭配不同,對所操作的物件能進行的操作也不同,從組合上看,無非有三種組合 其中type可為int char等基本資料型別,也可為構造資料型別 1 const type ptr 我們稱此種組合叫指向const物件的指標 linux核心中有很多函式引數就是此種型別,比如 void memc...
Const與Const的用法
const 是c 中常用的型別修飾符,常型別是指使用型別修飾符const說明的型別,常 型別的變數或物件的值是不能被更新的。const的作用 1 可以定義常量 即const int a 5 a就是乙個被const修飾的常量,它在程式執行期間是無法被改變的!2 保護被修飾的東西 例如乙個函式的首部為v...