const的运用

const和变量

不能改变变量的值

const int a = 8;
a = 10; //错误

const和指针

常量指针:不能通过指针修改所指向变量的值。但是指针可以指向别的变量。

int a = 8;
const int *p = &a;
*p = 20; //错误
int b = 20;
p = &b;

指针常量:不能存在新的地址,不能指向别的变量。但是可以通过修改所指变量的值。

int a = 8;
int *const p = &a;
*p = 20;
int b = 20;
p = &b; //错误

const和函数

const int func(const int a) const

  1. 修饰返回值const int func()
    不能修改返回值
  2. 修饰函数形参int func(const int a)
    不能修改形参a
  3. 修饰类的成员函数int func() const
    函数体内不能修改成员函数的值

const和对象

不能改变对象的值,和const修饰变量类似,即不能调用对象里修改变量的成员函数,只能调用只读函数(const函数,例如int func() const)

你可能感兴趣的:(C/C++)