說一下 常量指標和指標常量 的區別。
常量指標
指向常量的指標,也就是說指標指向的物件是常量,指向的常量不能修改。指標不是一個常量,
可以把指標指向別一個常量。
常量指標是我們最常用的,一般宣告形式如下:
const int *p; int const *p;
例:
int a(1), b(3); const int *p; // 或者是 int const *p; p = &a; std::cout << "address : " << p << " value : " << *p << std::endl; p = &b; std::cout << "address : " << p << " value : " << *p << std::endl;
上邊的程式碼是正確的用法。
不可以對指向的內容做修改:
*p = 3; // 錯誤
指標常量
指標指向的地址不可以改變,地址的內容可以通過指標改變。指標常量在定義時必須賦值。
例:
int a(1), b(3); int *const p = &a; *p = a; std::cout << "address : " << p << " value : " << *p << std::endl; *p = b; std::cout << "address : " << p << " value : " << *p << std::endl;
上邊的程式碼是正確的使用方式。
不能對指向的地址進行修改:
p = &b; // 錯誤
我們也可以這樣記
const 在誰前邊誰就不可以修改:
常量指標 : const 在指標前邊,我們就不可以修改指標。
指標常量 : const 在變數前邊,我們就不可以修改指標的地址。