1.指向常量的指針變量
指向常量的指針變量的定義方法:
const 類型標識符 *指針變量名;
如:
const int *p;
這種方法定義的指針變量只可讀取它所指向的變量或常量的值,不可借助該指針變量對其所指向的對象的值進行修改(即重新賦值)。但是,可允許這種指針變量指向另外一個同類型的其他變量。
本人自學,教材可能有點老,有問題的話求大家指正!!!謝謝!!!
2.指針常量
指針常量的定義格式:
類型標識符 *const 指針變量名=初始指針值;
如:
char * const p="abcde";
該方法定義的指針變量,其值(是一個指針值)不可進行修改(即不允許該指針變量再指向另外一個別的變量),但可以借助該指針變量對其所指向的對象的值進行讀取或修改。特別注意,這種指針在定義時必須初始化。
3.指向常量的指針常量
指向常量的指針常量的第一方法為:
const 類型標識符 * const 指針變量名 = 初始指針值;
如:
int b;
const int* const p=&b;
使用這種方法定義的變量,既不允許修改指針變量的值也不允許借助該指針變量對其所指向的對象的值進行修改。特別注意,該變量在定義的時候同樣必須初始化。
例題:
1 #include<iostream> 2 using namespace std; 3 4 int main() 5 { 6 const int i=20; 7 int k =40; 8 const int *p; 9 p=&i; 10 cout << *p << ' ' << i << endl; 11 p=&k; 12 cout << *p << ' ' << k << endl; 13 k=200; 14 cout << k << endl; 15 return 0; 16 }
1 #include<iostream> 2 using namespace std; 3 4 int main() 5 { 6 char s[]="hello world!"; 7 char * const p=s; 8 //p="xyz"; //該句錯誤,不可再使指針變量指向另外一個地址(指針) 9 cout << *p << endl; 10 *p='w'; 11 cout << *p << endl; 12 *p='q'; 13 cout << *p << endl; 14 return 0; 15 }
1 #include<iostream> 2 using namespace std; 3 4 int main() 5 { 6 int a=10; 7 int c=30; 8 const int b=20; 9 const int * const p=&a; 10 cout << *p << endl; 11 const int * const q=&b; 12 cout << *q << endl; 13 //p=&c; //錯誤 14 //*p=50; //錯誤 15 return 0; 16 } 17 18 //菜鳥,求大家批評指教,代碼編寫習慣和規范等等!!!謝謝!!!
本人自學,教材可能有點老,有問題的話求大家指正!!!謝謝!!!