1.把一个 const 对象的地址赋给一个普通的、非 const 对象的指针也会导致
编译时的错误:

const double pi = 3.14;
double *ptr = π // error: ptr is a plain pointer
const double *cptr = π // ok: cptr is a pointer to const

2.不能使用 void* 指针(第 4.2.2 节)保存 const 对象的地址,而必须使

用 const void* 类型的指针保存 const 对象的地址:

const int universe = 42;
const void *cpv = &universe; // ok: cpv is const
void *pv = &universe; // error: universe is const

3.允许把非 const 对象的地址赋给指向 const 对象的指针,不能修改其值

double dval = 3.14; // dval is a double; its value can be changed
cptr = &dval; // ok: but can't change dval through cptr

 

相关文章:

  • 2021-10-31
  • 2022-12-23
  • 2021-12-15
  • 2021-12-17
  • 2021-07-15
  • 2021-04-12
  • 2021-07-08
猜你喜欢
  • 2021-05-19
  • 2022-02-09
  • 2021-12-01
  • 2021-06-21
  • 2021-06-04
  • 2021-12-29
  • 2021-07-20
相关资源
相似解决方案