C++程序设计学习笔记:1 从C走进C++ 关键字const和常量

1 定义常量

关键字const,用于定义常量。例如:

const int MAX_VALUE = 23;
const double Pi = 3.14;
const char * SCHOOL_NAME = "Peking University";

学了 C++ 之后,应该多用const,少用 define。因为 const 是有类型检查。

2 定义常量指针

const 类型 * 指针名 = & 变量名

例如:

int n, m;
const int * p = & n;

常量指针和普通指针的区别是,不可以通过常量指针来修改其指向变量的内容。

* p = 5;     // 编译出错
n = 5;        // 没问题
p = &m;      // 没问题

不能把常量指针赋值给非常量指针,反过来是可以的。

const int * p1;
int * p2;
p1 = p2;             // 没问题
p2 = p1;             // 编译报错
p2 = (int *)p1;      // 没问题,因为强制类型转换

函数参数为常量指针时,可以避免函数内部不小心修改指针所指向地方的内容。

void my_print(const char * p)
{
   strcpy (p, "this");    // 编译出错
   printf ("%s", p);      // 没问题
}

编译器发现这个错误的原因是,strcpy 第一个参数类型是 char *,不能把一个常量指针赋值给非常量指针。

3 定义常引用

不能通过常引用,修改其引用变量的值

const 类型 & 引用变量名 = 被引用变量名

例如:

int n;
const int & r = n;
r = 5;   // 编译出错
n = 4;   // 没问题

课程录像

北京大学郭炜/刘家瑛老师,C++程序设计课程录像

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容