目錄
1.常量表示式
2.指標和引用的比較
3.指標和const限定符
4.陣列
const int n = 100;
int* a[n+1] = ;
上面的n+1是常量表示式,編譯時即可計算出結果。
①引用總是指向某個物件,定義引用時必須初始化,從一而終。
②給引用賦值修改的是該引用所關聯的物件的值,而並不是使引用與另外乙個物件關聯。
int val1= 1, val2 = 2;
int *ptr1 = &val1, *ptr2 = &val2;
p1 = p2; //p1指向p2
int &r1 = val1, &r2 = val2;
r1 = r2; //val1 = val2
① 指向const物件的指標
const double * val;
表示指標val本身不是const,而是其指向的物件為const,其指向的內容不可修改。
②允許非const物件的位址賦給指向const物件的指標
double val1 = 3.14;
const double * ptr = &val1; //val1不能再修改!!!
//但是val1可以通過以下方式修改
double * ptr1 = &val1;
*ptr1 = 1.11;
cout << *ptr << endl; //輸出1.11
總結:指向const物件的指標,可以理解為自認為指向const的指標,如果物件是非const,可以通過上述方式修改其值。指向const物件的指標一般用在函式的形參中,用於說明在此子函式中不要改變其指標指向的內容。
③ const 指標:指不能改變其指標的值。
int val = 0;
int* const ptr = &val;
④指向const物件的const指標
const double val = 3.14;
const double *const ptr = & val;
typedef string *pstring;
const pstring cstr; //注意:等價於 string *const cstr;
①用new進行動態分配陣列,分配的長度可以為0,其分配返回的是乙個非零指標。
②用c_str可以把string轉換為char型
const char* str = str1.c_str();
指向const的指標和const指標
指向const的指標 int gorp 16 int chips 12 const int p snack gorp 其中p snack指向乙個const int。p snack 20 不被允許,p snack的值為const,禁止修改p snack指向的值,p snack chips 可以執行,p...
指向const物件指標 const指標
指向const物件指標 const指標 2010 07 22 16 40 1.指向const物件的指標 指向const物件的指標是乙個指標,但是不能通過它修改它指向的物件的值.宣告方法 const int p 指向const物件的指標在初始化後不允許對它指向的物件的值進行修改.const int i...
指向const物件指標 const指標
參見 110頁 陣列和指標 一節 指向const物件指標關鍵理解 const double cptr 指向const物件指標關鍵理解 可以指向非const物件,但不能通過該指標修改所指向物件的值,const指標關鍵理解 int const curerr errnumb const指標關鍵理解 cur...