C++入坑系列(六)之const和指针

本文探讨C++中的指针常量和常量指针,解释它们的概念和区别,并通过程序示例说明如何在实际开发中使用它们。最后,文章介绍如何结合两者,实现指针既不变向也不改变所指变量的值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在实际的开发过程中,您是否听过指针常量常量指针?又是否知道它们之间的区别呢?虽然两者的名称是非常相似的,但是两者的工作原理却有着很大的区别。
本文目的便是希望能够让大家理解起来更加容易,如有不足和疏漏之处,还望各位读者不吝指正,谢谢!

指针常量

概念

指针本身是一个常量,即指针的指向不能更改的,但是可以通过指针修改指向的变量的值

程序说明

int testNum1 = 60,testNum2 = 90;//初始化两个整型变量
int * const pNum = &testNum1;//将testNum1的地址赋值给pNum
*pNum = 88;//通过指针修改testNum1的值
pNum = &testNum2;//错误,pNum只能指向testNum1变量,而不能更改指向

常量指针

概念

指针指向一个常量数据,即不能通过指针修改指向的变量,但是可以直接更改该变量的值,也可以修改指针的指向

程序说明

int testNum1 = 20,testNum2 = 30;
const int* pNum = &testNum1;//将testNum1的地址赋值给pNum指针变量
*pNum = 50;//错误,尝试通过常量指针修改testNum1变量,这是不合法的
testNum1 = 60;//可以直接修改testNum1变量的值
pNum = &testNum2;//将testNum2变量的地址赋值给pNum,这是合法的
cout << "testNum2的值为:" << *pNum << endl;//输出30

两者的结合

在实际应用中,如果既不希望更改指针的指向,也不希望更改指针指向的变量的值,那么可以结合上述两种方法进行实现。
程序说明如下:

int testNum1 = 88,testNum2 = 99;
const int* const pNum = &testNum1;
*pNum = 100;//错误,不能通过pNum修改testNum1的值
testNum1 = 200;//正确,可以直接修改变量的值
pNum = &testNum2;//错误,不能修改pNum的指向
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值