转载出处:https://blog.csdn.net/wkk_ly/article/details/82348905
const 修饰指针的几种情况
一、常量指针
常量指针:指针指向的值不能修改(指针指向地址的具体指不能修改),但是指针的值可以修改(指针指向的地址可以修改)
const 类型 * 指针名 = 地址
例如: const int * p1 = &a;
此时 指针p1指向的值不能修改, 但是该指针可以指向其他的地址
1234
实例代码
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
12345678910111213
二、指针常量
指针常量: 指针的值不能修改(指针只能指向一个地址),但是指针指向的值可以修改(虽然指针只能指向一个地址,不能修改指针的值但是可以修改该地址的值)
类型 * const 指针名
例如: int * const p1 = &a;
此时 指针p1只能指向a 不能在指向其他的地址 但是p1可以修改a的值
1234
实例代码
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
1234567891011121314
三、指向整型常量的常量指针
指向整型常量的常量指针
const 类型 * const 指针名
例如: const int * const p1 = &a;
p1指向的地址不能修改 , 指向值也不能修改 (比如上面的代码P1只能指向a而且不能修改a的值)
---------------------
作者:wkk_ly
来源:CSDN
原文:https://blog.csdn.net/wkk_ly/article/details/82348905