c++中const的用法
有时我们希望定义一种变量,它的值不能被改变,就要用到关键字const
1.初始化和const
2.const引用
const int i = 1024; const int &ri = i; //正确 int &ri1 = i; //错误,试图让一个非常量引用去指向一个常量引用初始化对const的引用
int &a = 10; //错误,引用初始值必须是一个对象 double d = 3.14; int &b = d //错误,此处的初值必须是int类型 int i = 42; const int &r1 = i; //正确 const int &r2 = 42; //正确 const int &r3 = r1 * 2; //正确r3是一个引用常量 double dval = 3.14; const int &ri = dval; // 正确ri是一个引用常量对于上中情况double类型转换为int类型的常量引用,编译器是这样转换的
const int temp = dval; //由双精度浮点类型生成一个临时的整形常量 const int &ri = temp //让ri绑定这个临时变量当然const引用可以引用一个并非const的对象
3.指针和const
const double d = 3.14; double *pd = &d; //错误const指针
int i = 3.14; int *const i1 = &i;
4.顶层const
int i1 = 1; int *const i = &i1; //正确,顶层const,没什么影响 int *p = i; const int *i2 = &i1; //错误,底层const,有影响
5.constexpr和常量表达式
const int max_files = 20; //是常量表达式 const int limit = max_files + 1; //是常量表达式 int staff_size = 27; //不是常量表达式constexpr变量
const int *p = nullptr; //p是一个指向整型常量的指针 constexpr int *q = nullptr; //q是一个指向整数的常量指针
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。