const 修飾指針的幾種情況
一、常量指針
常量指針:指針指向的值不能修改(指針指向地址的具體指不能修改),但是指針的值可以修改(指針指向的地址可以修改)
const 類型 * 指針名 = 地址
例如: const int * p1 = &a;
此時 指針p1指向的值不能修改, 但是該指針可以指向其他的地址
實例代碼
int main()
{
int a = 3;
int b = 5;
const int * p1 = &a;
cout<<"*p1==" <<*p1<<endl;
p1 = &b;
cout<<"*p1==" <<*p1<<endl;
return 0;
}
打印結果是 3
5
二、指針常量
指針常量: 指針的值不能修改(指針只能指向一個地址),但是指針指向的值可以修改(雖然指針只能指向一個地址,不能修改指針的值但是可以修改該地址的值)
類型 * const 指針名
例如: int * const p1 = &a;
此時 指針p1只能指向a 不能在指向其他的地址 但是p1可以修改a的值
實例代碼
int main()
{
int a = 3;
int * const p1 = &a;
cout<<"*p1=="<<*p1<<endl;
*p1 = 4;
cout<<"*p1=="<<*p1<<endl;
cout<<"a=="<<a<<endl;
}
打印結果是:
*p1==3
*p1==4
a==4
三、指向整型常量的常量指針
指向整型常量的常量指針
const 類型 * const 指針名
例如: const int * const p1 = &a;
p1指向的地址不能修改 , 指向值也不能修改 (比如上面的代碼P1只能指向a而且不能修改a的值)