const修饰指针变量时,基本含义如下:
1. 如果唯一的const位于符号*的
左侧
,表示指针所指数据是常量,数据
不能
通过
本指针改变,但可以通过其他方式进行修改;指针本身是变量,可以指
向其他的内存单元。
2. 如果唯一的const位于符号*的
右侧
,表示指针本身是常量,不能让该指针
指向其他内存地址;指针所指的数据可以通过本指针进行修改。
3. 在符号*的左右各有一个const时,表示指针和指针所指数据都是常量,既
不能让指针指向其他地址,也不能通过指针修改所指向的内容
const既出现在*的左侧,也出现在*的右侧,表示指针本身及指针所指的数据
都是不可修改的
示例代码如下:
#include<iostream>
using namespace std;
int main( ) {
int a1=3; //普通变量,a1=5是正确的
const int a2=a1; //数据是常量的,a2=5是错误的
int * a3=&a1; //普通指针指向普通变量,*a3=6是正确的
const int * a4=&a1; //数据是常量的,普通指针*a4=5是错误的
int * const a5=&a1; //指针是常量的,不能修改指针,但*a5=10是正确的
int const * const a6=&a1; //数据是常量的,指针也是常量的
const int * const a7=&a1; //数据是常量的,指针也是常量的
return 0; }
可以简单地记住const的修饰规则:const修饰其左侧的内容;如果const是本行的第一个标识符,
则它修饰其右侧的内容