C++中const限定修饰符

本文详细介绍了C++中const修饰符的应用,特别是对于指针的两种不同使用方式。一种是只允许修改指针所指向的地址但不允许通过指针改变其指向对象的值;另一种则不允许修改指针所指向的地址也不允许通过指针改变其指向对象的值。
摘要由CSDN通过智能技术生成
const修饰可以把对象转换成为常数对象,什么意思呢?
就是说利用const进行修饰的变量的值在程序的任意位置将不能在被修改,就跟常数一样。

使用方法: const int a = 1;
但是对于指针来说,const依然是起作用的,以下两点非常重要!

Ex.1
#include <iostream>
using namespace std;

static void compositor(int *p1,int *p2);

int main() {
	const int a = 10;
	int b = 20;

	const int *pi;
	pi = &a;
	cout<<*pi<<"|"<<a<<endl;
	pi = &b;
	cout<<*pi<<"|"<<b<<endl;
	cin.get();

	return 0;
}

其中最重要的一句是 const int *pi;  这句话应该从右向左读: pi是一个指向int类型的,被定义成const的对象的指针。
这样的声明方式的作用是 可以修改 pi这个指针指向的内存地址,但是 不能修改 指向的对象的值。

Ex.2
#include <iostream>
using namespace std;

int main() {
	int a = 10;

	const int *const pi = &a;
	cout << *pi <<"|"<<a<<endl;
	cin.get();
}

这里注意这句: const int *const pi;
意思是:pi是指向int类型对象的const指针;

这种方式既不能修改pi指向对象的内存地址,也不能利用指针的解引用方式修改对象的值,也就是用*pi = 10这种方式。


结合以上两点,下面这种方式就可以避免在程序的任意地方修改对象a的值或者是指针pi的地址了 ,常用于函数的形式参数。

#include <iostream>
using namespace std;

int main() {
	const int a = 10;

	const int *const pi = &a;
	cout << *pi <<"|"<<a<<endl;
	cin.get();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值