第一種const指標:
const double *pc = 0;
這種型別的定義表示pc指標指向的記憶體的內容不可通過pc來修改!
const 變數的位址只能賦給const指標:
const double *pc = 0;
const double minwage = 9.60;
pc = &minwage;
但是const指標也可以指向非const變數
double dval = 3.14;
// ok: 不能通過pc 修改dval
// 雖然dval 本身不是乙個常量
pc = &dval; // ok
注意!即使是指向非const變數也不可以通過pc修改變數的內容,因為pc有const修飾.
dval = 3.14159; // ok
*pc = 3.14159; // 錯誤
正因為這種const指標可以保證指向得內容不通過這個指標被修改,所以大家才常用下面的函式方式:
int strcmp( const char *str1, const char *str2 );
第二種const指標:
int errnumb = 0;
int *const curerr = &errnumb;
這一種是指標不能指向其他位址,只能指向初始化位址.
如果寫出下面的**就會發生錯誤:
curerr = &myerrnumb; // 錯誤
第三種const指標:
這種const指標是錢兩種的結合,使得指向的內容和位址都不能發生變化.
const double pi = 3.14159;
const double *const pi_ptr = π
總上,應該了解,不論那種型別的const指標都不能限制它指向的記憶體內容不被修改,最多是限制不通過它被修改,或者限制它自己不被修改而已.
關於const與指標
定義常量指標時必須同時初始化它,以後不能更改它 int var int const c ptr var 指向int的常量指標 c ptr 123 true 沒有修改指向的物件,但可以修改指向的物件的值 c ptr false 不能修改常量指標本身指向常量 const 物件的指標 int var co...
關於const限定的字元指標
1 const char p 2 char const p 3 char const p 4 const char p 5 char const p 6 char const p 7 char const p 當然還有在 5 6 7 中再插入乙個const的情況,不過分析了以上7種,其它的就可類推了...
關於const和指標的專題
const和指標的問題是筆試裡經常出現的問題。這裡綜合一下各種不同的情況。首先是幾種const與指標組合的區分,比如 int b 500 const int a b 1 int const a b 2 int const a b 3 const int const a b 4 1 和 2 其實是一樣...