美文网首页
C++程序设计学习笔记:1 从C走进C++ 关键字const和常

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

作者: louyang | 来源:发表于2017-11-15 08:56 被阅读7次

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++程序设计课程录像

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/bqtcvxtx.html