const int bufferSize = 512;
double a = 3.14;
const和引用
1.常量的引用
2.引用常量
// 常量的引用
int &ri = bufferSize; //错误,不可以用一般引用去绑定一个常量,因为不可以修改,而一般引用时允许修改的
const int &ri = bufferSize; // 正确,引用常量和常量绑定,符合规范
// 引用常量
const int &r2 = a; // 正确,不允许使用r2来修改a的值
// 不难看出,上面等式打破了引用类型必须与其所引用对象的类型一致
// 上述实际执行的是:
int temp = a;
const int &r2 = temp;
// temp称为临时量对象,一般创建引用绑定对象目的就是要使用引用来改变值。 如果不是用引用常量绑定则错误。
const和指针
1.指向常量的指针
2.指针常量
// 指向常量的指针 仅仅要求不能通过该指针改变对象的值
int *ri = &bufferSize; // 错误,ri是普通指针
const int *ri = &bufferSize; //正确,ri指向 bufferSize 常量的地址不可以使用ri去修改bufferSize的值
const int *r2 = &a; //正确,但是不可以使用r2来修改a的值,a不是常量即允许一个指向常量的指针指向一个非常量对象
// 不难看出,上面的等式打破了 指针类型必须与所指对象的类型一致
// 指针常量,能否修改完全取决于所指对象是否为常量
double *const r3 = &a;//r3是一个指向一般的非常量整数,可以用r3来修改a的值 *r3 = 3;
const int *const ri = &bufferSize; // ri 是一个指向常量对象的常量指针,如何都不可以修改bufferSize的值
const阶级
1.顶层
2.底层
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧