【C++学习笔记】关于const int* 、 int const * 、 int* const
const int*、int const*、 int* const的关键点在于const 与* 的位置,而const 与类型 int的位置无关,可以随意调换,属于个人代码风格,不过建议写成 const int *,方便 直观。
const int*与 int * const 的区别在于 const 修饰的是int* 还是 变量,其中 const int* a 修饰的是int* ,表示这个指针指向的内存区域是常量,不可以修改值,与 const int a 相同,都是不可以改变内存内的值,int* const a 修饰的是变量a,表示变量a的存储的值(指向内存的地址)不可以改变,但是可以改变指向地址的值。
例如:
int m=5,n=10;//定义了两个变量 m n
int* a=&m;//a 是一个指针变量,指向了m的地址,即m存的是5,a存的是m的地址,常规操作中我们可以修改m的值,也可以修改a的值
//如下L:
m=15;//直接修改m的值为15,执行后,m是15,*a也是15;
*a=20;//通过指针a修改m的值,执行后,m是20,*a也是20;
a=&n;//直接修改a的值为n的地址,此时*a是10;
const int* b=&m;//b 是一个指针变量,指向m的地址。
*a=20;//这段代码会报错,因为修饰的是指针,表示指针指向的地址的值不可以改变,与 const int c=5;相同点是都是不能修改c的值,不同点是c的值一直不能改,但*a的值可以通过m=20来改变,执行以后,*a也变成了20。 *a不能改,但m能改
a=&n;//虽然const 约束了指针,但是没有约束指针变量,所以可以修改指针变量的值。即:改变指针变量指向的地址。
int* const b=&m;//b是一个常量地址,指向了m的地址
*b=&n;//这行代码会报错,因为b是一个常量,它的值就是m的地址,不能改变变量b的值。
*b=30;//可以通过*b修改m的值。此时m也是30;
我很平凡
没有过人的天分
没有命运的恩宠
世界不公平。
但我知道
有一个倔强的我
不甘平庸
渴望自由
潜能无限
我相信
只要执着和努力
总有一天
让世界的不公平
在我面前低头!
分类:
C++
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】