1、定义常量
const int a=10;
const string s="hello world";
2、定义常量指针
在定义指针的时候,前面加一个const关键字,即定义了一个常量指针。
定义方式有两种:
- const int *p=&n;
- int const *p=&n;
常量指针:可以理解为该指针所指向的内容(*p)是常量,不能通过指针的解运算来修改n的值;但是p并非常量,可以修改p,使p指向其他内容。
总结:
*p=9;//error
p=&m;//ok
常量指针与普通指针的区别:
不能通过常量指针去修改其指向的内容。(并不代表该内容不可变,可以通过其他方式改变,只是不能通过常量指针改变)
int n,m;
const int *p=&n;
*p=5;//error
n=4;//ok
p=&m;//ok
不能把常量指针赋值给普通指针,反过来可以:
const int *p1,
int *p2;
p1=p2;//ok
p2=p1;//error
p2=( int *)p1;//强制类型转化之后,ok
3、指针常量
定义方式:
int * const p=&n ;
含义:
该指针是一个常量,即指针指向的地址不可改变,但是指针指向地址所存储的内容可以改变。
总结:
*p=9;//ok
p=&m;//error
常量指针与指针常量:
const 在号的前面,代表*p是常量,const 在 号后边代表p为常量。
const int * const p=&n;
p 和 *p都不可改变。
4、常引用
具体见引用一节