“const”和引用、指针的初级用法
const (C++ primer笔记)
cons的用法相当于java中的final,是将对象的设置为不可修改。
主要难点:
对于引用
const的引用:
我们可以把引用绑定到const对象上,称作对常量的引用,对常量的引用不能用作修改它所绑定的对象:
const int ci = 1024;
const int &r1 = ci;
r1 = 12;
int &r2 = ci;
- r1 是对 常量的引用所以不能更改;
- r2 一个非常量引用指向一个常量对象是错误的;
初始化和对const的引用:
double val = 3.14;
const int &ri = dval;
//上面的语句,编译器会对double类型的值进行转换然后再绑定。
const int temp = dval;
const int &ri = temp;
对const的引用可能引用一个并非const的对象
int i = 42;
int &r1 = i;
const int &r2 = i;
r1 = 0;
r2 = 0;
r1能够改变i的值,而r2不行。
因为r2是常量引用,所以const引用一个非const的对象。指针也一样。
对于指针
指向常量指针与产量指针的区别
const double pi = 3.14;
const double *cptr = π//一个指向常量的指针
const double pi = 3.14159;
const double *const pip = π//pip是一个常量指针
无法给*cptr赋值,如果没有const修饰符,*cptr无法成为指向常量的指针。
常量指针的含义:不变的是指针本身的值而非指向的那个值。