const指標和指向const物件的指標

2021-09-12 01:29:44 字數 1384 閱讀 9801

目錄

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...