1.C++中const的用法

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;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章