OOP 1.2 const关键字

1.2 const关键字

1、常量 指针常量

定义常量:const 类型 =值
定义指针常量:const *类型=值

  • 常量指针不可通过常量指针修改其指向的内容
  • 可直接修改其指向的内容
  • 常量指针的指向可以变化
  • 不可以把常量指针赋值给非常量指针(语法规定:const指针指向的地方p1倾向于该处尽量不要修改,若赋值给非常量p2,则以后可以通过修改p2指向内容修改p1,产生不安全因素)
  • 可以把非常量指针赋值给常量指针
  • 可以用强制类型转化 把常量指针赋值给非常量指针
    e.g.
int n,m;
const *p=&n;
*p=5//illegal 常量指针不可通过常量指针修改其指向的内容
n=4//OK 可直接修改其指向的内容
p=&m;//OK 常量指针的指向可以变化
const int *p1;int *p2;
p1=p2;//OK 可以把非常量指针赋值给常量指针
p2=p1;//illegal 不可以把常量指针赋值给非常量指针
p2=(int *)p1;//OK 强制类型转换 合法

2、实例:函数参数作为常量指针

  • 可避免函数内部不小心改变参数指针所指向的内容
    e.g.
void f(const char *p)
{
    strcpy(p,"this");//illegal strspy传入的第一个参数为char* 型,用const char给其赋值为非法,编译器报错
    printf("%s",p);//OK
}

3、常引用

  • 不能通过常引用修改其引用的变量
    e.g.
int n;
const int &r=n;
r=5;//illegal 不能通过常引用修改其引用的变量
n=4;//OK
posted @ 2018-02-11 15:06  fzu_Y  阅读(152)  评论(0编辑  收藏  举报