#include <iostream>
using namespace std;
#define X 3 //const相比于define的好处是有类型的,在编译的时候要检查语法错误
void fun(const int &a, int const &b)
{
//a = 10; 报错
//b = 20; 报错
}
int main()
{
int const a = 10; //a的值改变会报错
int const *p = &a; //等价于const int *p = &a,改变*p报错;对于类型:把int换成double会报错
cout << *p << endl;
int b = 20;
p = &b; //可以改变p的指代对象
cout << *p << endl;
int c = 30;
int *const q = &b; //不能改变q的指代对象但是能改*q的值
*q = 50;
cout << b << endl;
//int *p1 = &a;会报错,
//权限大的指针接收权限小的变量是不允许的
//权限小的来接收一个权限大的变量是允许的,见上
const int &d = a; //d也不能改变值,const 和 int可以互相换位置
cout << d << endl;
system("pause");
return 0;
}