普通 | const | |
成员变量 | 只能通过构造函数的参数初始化表初始化
| |
成员函数 | 对普通变量可以引用和修改 可以引用const变量,不可改变。
| 类内声明,类外写都要带上const 无论是普通还是const变量,都是只可访问,不可修改。 不可调用普通函数。 |
对象 | 不可调用普通函数,不可修改const函数值 |
指针:
根据怎么读的技巧:
- 遇到
const
读作常量 - 遇到
*
读作指针
那么 ②const int *p;
读作常量指针 ,它有什么特点?
根据记忆特性技巧
const
在*p
之前代表*p
是个常量,*p
不可修改,即值不可修改const
只是在p
之前代表p
是个常量,p
不可修改,即地址不可修
int a = 3,b = 5;
int *p = &a;
cout<<a<<" "<<*p<<"\n";
*p = 7;//修改值
cout<<a<<" "<<*p<<"\n";
p = &b;//修改地址
cout<<a<<" "<<b<<" "<<*p;
int a = 3,b = 5;
const int *p = &a;
cout<<a<<" "<<*p<<"\n";
*p = 7;//修改值 、非法
const int a = 3;
int *p = &a;//错误
const int *p = &a;//要将p定义为常量指针
一个变量被声明为常变量,只能用指针常量指向它。
const char c[] = "boy";
const char *p;//创建常量指针
p = c;//合法
char *p1 = c;//非法,必须定义为常量指针
cout<<c;
cout<<p1;