[cpp017]常量指针与指向常量的指针

109 阅读1分钟

1、指向常量的指针

  • 指向常量的指针. 特点: 指针指向的内容不能修改,但可以把指针设置为指向其他内容.
const char* star{"Fatty"};
// 修改star元素的值
star[0] = ‘A’; //    编译报错

star = “West”; // 编译通过

例子2:

const int value {20};
const int* pvalue {&value};

*pvalue = 21; // 报错
  • value是一个常量,不能修改value的值
  • pvalue是一个指向常量的指针,可以用于存储value的值,也可以存储其他常量的地址.

2、常量指针

  • 存储在指针中的地址不能修改,常量指针只能指向初始化时指定的地址.
  • 但是地址的内容不是常量,可以修改.
int data {20};
int* const pdata {&data}
  
*pdata = 22; //  可以修改

3、指向常量的常量指针

  • 存储在指针中的地址和指针指向的内容都被声明为常量,所以两者都不能修改
const float value {3.14f};
const float* const pvalue {&value};