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