C++学习笔记(一)

来源:互联网 发布:室内设计师必备软件 编辑:程序博客网 时间:2024/06/07 14:21

const 和引用 指针

int i = 42;int &r = i;
int *p = &i;
int *const p1 = &i;//顶层const
 正确,r为i的引用,p为i的指针,且可以通过r和p,p1更改i;p1指向不可更改

const int i = 42;//顶层constint &r = i;
int *p = &i;
int *const p1 = &i;//顶层const
错误,i为常量,r并不是一个常量引用,p,p1也不是一个指向常量的指针;
const int i =42;//顶层constconst int &r = i;//顶层const
const int *p = &i;//底层const
const int *const p1 = &i;

正确,i和r均为const。但是i和r,p,p1都不能改变i的值42;

但是p本身不是一个常量,可以更改它的指向;p1是一个常量,不可更改指向;

int i =42;const int &r = i;
const int *p = &i;//底层const
const int *const p1 = &i;
正确,但是不能通过r,p更改i的值;p可以更改指向;p1不可更改指向;


顶层const可以表示任意的类型是一个常量,底层const表示符合数据类型中,基本数据类型为常量


0 0