part02-const关键字

Posted flying_1314

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了part02-const关键字相关的知识,希望对你有一定的参考价值。

目录

1、定义常量

2、定义常量指针

3、定义常引用


1、定义常量

const int MAX_VAL = 1;
const double PI = 3.14;
const char * Major = "CS";

2、定义常量指针

📢:不可通过常量指针修改其指向的内容

int n,m;
const int * p = &n;
*p = 5;// 编译报错
n = 5;// ok
p = &m;//ok,常量指针的指向可以变化

📢:不能把常量指针赋值给非常量指针,反过来ok

(理解一下,之所以是常量指针,就是因为不想被修改,如果你赋值给了非常量指针,那么是不是可以通过修改非常量指针,来修改我们常量指针所指向的内容了,与出发点不一致,所以不ok)

const int *n, int *m;
n = m;// ok
m = n;// fail
m = (int *)n;//ok,强制类型转换

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

void MyTest(const char * p)

    strcpy(p,"hello world");//编译失败
    printf("%s",p);//ok

上面编译出错的原因在于,strcpy的第一个参数时char * ,我们传入了const char * ,违法了上面说的,我们不能把常量指针赋值给非常量指针的原则。

3、定义常引用

第一章、part01-引用_flying_1314的博客-CSDN博客这里面有提到,这里简述一下

📢:不能通过常引用修改其引用的变量

int x;
const int & y = x;
y = 5;//编译失败
x = 5;//ok

今天就到这里了,有什么问题欢迎评论区交流~

以上是关于part02-const关键字的主要内容,如果未能解决你的问题,请参考以下文章

part02-const关键字

C++获取基类指针所指子类对象的类名

Part6 数组指针与字符串 6.12 对象复制与移动

8.python之面相对象part.5(子类调用父类的方法,以及super关键字)

初级字典树查找在 Emoji关键字检索上的运用 Part-1

Python Chapter 10: 列表 Part3