首先明确一点,<const从不修饰数据类型,其最常修饰的是变量,指针,引用>
下面给出示例
int num = 100;
const int *ptr = # // 此时const修饰的是*,是一个指针常量,其解引用不能作为左值,
// *ptr = 10; // error: assignment of read-only location ‘* ptr’
// ---------------------------------------------------------------------------------------
int* const ptr = # // 此时const修饰的是变量ptr,是一个常量指针,其指针指向不能改变,只能指向num的地址
*ptr = 200; // Ok
int anothreNumber = 20;
// ptr = &anothreNumber; // error: assignment of read-only variable ‘ptr’
const int &alias = num; // 引用常量,无法使用别名alias修改num的值
// alias = 500; // error: assignment of read-only reference ‘tmp’
// 暂时没有常量引用这个说法,因为引用必须在声明时就初始化,如
int number = 100;
int &tmp = number; // 此时tmp永远为number的别名,直到内存释放
本文详细介绍了C++中const关键字的使用,包括const修饰指针和引用的不同情况。const可以修饰变量、指针和引用,使得它们具有只读特性。例如,const int* ptr表示指针常量,不能改变指针的指向;而int* const ptr表示常量指针,指针指向的值可以修改。此外,const int& alias表示引用常量,不能通过别名修改原变量的值。
375

被折叠的 条评论
为什么被折叠?



