欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++中const的用法

程序员文章站 2022-07-09 21:42:55
...

C++ Priemr Plus推荐使用const

1.这样可以避免由于无意间修改数据而导致编程错误;

2.使用const使得函数能够处理const参数和非const参数,否则只能接受非const参数;

3.如果条件允许,则因该将指针形参声明为指向const的指针;

#include <iostream>
using namespace std;
int main()
{
	int a1 = 3;			//非const
	int a3 = 99;
	const int a2 = a1;  //是const

	int *p1 = &a1;		//不是const指针
	const int *p2 = &a1;//不是const指针,所指数据是const,p2可以指向其他的地址,但是不能通过解应用修改指向地址的值;
	int *const p3 = &a1;//是const指针,所指数据不是const,指针是const,不能指向其他地址,但是初始化指向地址的值可通过解应用修改;
	int const *const p4 = &a1;//是const指针,所指数据是const
	const int *const p5 = &a1;//是const指针,所指数据是const


	p2 = &a3;  //合法  p2不是const指针可以指向其他的地址
	//*p2 = 88;//非法  p2所指数据是常量,不能通过解应用修改指向地址的值

	//p3 = &a2;//非法 p3是const指针,不能指向其他地址
	*p3 = 88;//合法	p3所指数据不是const,初始化指向地址的值可通过解应用修改

	//p4 = &a2;//非法  const指针不能指向其他地址
	//*p4 = 99;//非法  p4所指是const数据,不能通过解引用修改

	//p5 = &a2;//非法 const指针不能指向其他地址
	//*p5 = 99;//非法 p5所指是const数据,不能通过解引用修改
	cout << "*p2=" << *p2 << endl;
	cout << "*p3=" << *p3 << endl;
	cin.get();

	return 0;
}

 

相关标签: const