1)与基本数据数据类型:
const int x= 1;
2)与指针数据类型:
首先要明确如何定义一个指针类型的变量:
int a=1;
int *b=&a; 、、这就是定义一个指向a地址的指针,* 这个符号在 定义变量时出现表示这个是指针变量。
其中& 符号是取地址符。
1.
const int *p=&a;等价于 int const *p=&a; const 修饰的是 ! (*p)!不能通过(*p)来修改p指向的变量的值。
但是p可以指向一个新的地址。
2.
int * const p=&a;此时const修饰的p,也就是说不能改变p指向的地址
3.
const int *const p const在指针的前面和后面 表示 p不能在指向其他的地址,也不能在通过在指针来修改指针指向的变量的值。
4)与引用
const int &y=a; 现将y作为a的引用 然后将用const对引用进行修改,这就表示 y不能变化了a是多少y就是多少, 可以通过a修改他的值但是不能通过y修改他的值就是说y的值是固定的了。
5)示例
1
2
3对比
通过对比我们知道定义一个变量是他的权限最大能读能写,他的指针或者引用可以用const 修饰 ;;
但是 一个变量如果在 定义是就限定了他的权限 ,而他的指针或者引用的权限比原来的还要大那么就容易出错,这是不允许的。