c++ const关键字总结
Posted zhouli_csdn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ const关键字总结相关的知识,希望对你有一定的参考价值。
const在C++中的使用:
- const对变量的修饰
- cosnt对指针的修饰
- const对函数的修饰
一. const对变量的修饰
const int MAX_SIZE = 1024;
这是最常见的用法,大家都没问题, const在定义的时候需要初始化。
有两点需要注意一下:
a) const变量默认是局部变量,如果需要全局访问,需要显示地extern
b) const int MAX_SIZE = 1024 与 #define MAX_SIZE1024 貌似做了相同的事情,但是是完全不同的两个同意。
#define作为宏定义是完全文本替换,而const MAX_SIZE是作为一个变量整体的。
下面这段代码可以说得更清楚:
const int MAX_SIZE = 1 << 10;// #define MAX_SIZE 1<<10
cout << MAX_SIZE << std;
二. const对指针的修饰
const int * a = &b; (1)
int const * a = &b; (2)
int * const a = &b; (3)
const int * const a = &b; (4)
(1)(2)的含义是相同的,表示指针所指的内存空间不可修改. *a = XXX;是非法的
(3)表示指针不可修改,a++是非法的;
(4)表示指针和指针内容都不可修改
三. const对函数的修饰
void fun(const int &r) (1) 与int const相同
void fun() const (2)
const int fun() (3)
(1) 函数的参数为const,表示函数不可修改参数的值
(2) 函数加const后缀, 此时的函数为自定义结构(struct,class)的成员函数,表示该函数成员不可修改class的成员变量
(3) 函数的返回结果为const
表示返回的结果不可修改,返回结果只能赋值给const修饰的变量
经验:
1)对const变量采用统一的编码风格能减少一些不必要的错误
2)给函数传参时,尽量使用带const的引用方式
3)返回结果迫不得已才使用const修饰
以上是关于c++ const关键字总结的主要内容,如果未能解决你的问题,请参考以下文章