const关键字的总结 :
作用 | 说明 | 参考代码 | 注意 |
定义常量 | 常量不可修改 | const int val = 5; int const val = 5; | 与#define宏定义常量的区别: (1)const常量具有类型,编译器可以进行安全检查,推荐使用。 (2)#define宏定义只是简单的字符串替换。 |
修饰指针 | (1)const int* p; //指针p指向的内容是常量,不可改变。 (2)int* const p; //指针本身是一个常量,不可改变。 (3)const int* const p; //指针本身和指向的内容都是常量,都不可以改变。 | 区分方法,*p代表对象内容,p代表指针本身,看const修饰的是哪个。 | |
在函数中使用const | 修饰函数参数 | void function(const int Var); //表明参数在函数体内不能被修改,但此处没有任何意义,Var本身就是形参,在函数内不会改变。 包括传入的形参是指针也是一样。 | (1)使用引用参数,可以防止创建副本,减少内存开销,同时可以在函数中对引用参数修改,函数结束后,引用参数的修改仍然存在。 (2)如果为了防止对引用参数进行修改,可以对该参数加上const关键字。 |
修饰函数返回值 | 与修饰普通变量和指针意义差不多,很少使用。 | ||
在类中使用const | 修饰类成员变量 | class A | (1)成员常量不可被修改。 (2)只能在初始化列表中被赋值。 |
修饰类成员函数 | class A | (1)常成员函数, 它不改变对象的成员变量. 代表只读函数,增加程序的可读性。 (2)不能调用类中任何非const成员函数。 | |
参考:https://www.cnblogs.com/JiFfeiYu/p/6697195.html |