const修饰问题
来源:互联网 发布:通用数据库管理系统 编辑:程序博客网 时间:2024/06/05 03:36
const修饰指针的四种情况:
int b = 500;const int* a = &b; // 情况1int const *a = &b; // 情况2int* const a = &b; //情况3const int* const a = &b; // 情况4
1.对于情况1,const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向的为常量;如果const位于星号的右侧,则const修饰的是指针本身,即指针本身是常量。因此情况1而情况2是相同的。都是指针指向的内容为常量,这种情况下不允许对内容进行更改。
2.情况2与情况1相同
3.情况3为指针本身是常量,这种情况下不能对指针本身进行更改,而指针指向的内容是可以更改的。也即指针指向固定的内存位置,而这个位置具体存储什么值是可变的。这种情况下,指针在定义的时候就必须初始化(原因显而易见,定义之后指针的值就不能再改变,因此不能再对指针本身进行赋值操作了)
4.情况4为指针本身和指向的内容均为常量。表明指针本身的值和指向内容的值都不能更改。
const修饰成员函数的情况:
用const放在成员函数的括号之后,用来表明该成员函数不会对任何类的成员变量进行修改,原则上说任何不对成员变量进行修改的成员函数都应该声明称const,这样有助于提高代码的可读性和可靠性。
const放在函数声明之前表明该函数的返回值时常量。
在c++中const还可以用来定义常量,const定义常量对比#define的有点在于const有数据类型,编译器会对const定义的常量做类型检查。另外,有些调试工具可以对const常量进行调试而不会对宏常量进行调试。
0 0
- const修饰问题
- const 修饰指针的问题
- c语言const修饰符问题
- 关于const修饰指针的问题
- 关于const修饰的问题【转载】
- const 修饰
- const修饰
- 有关static成员函数不能用const修饰的问题
- 关于const 和&修饰函数返回值的问题
- 求助:关于const修饰模板参数的问题
- const和volatile修饰同一个变量的问题
- const修饰成员函数const修饰对象
- const限定修饰符
- const修饰符杂谈
- const修饰的谁?
- const修饰常量
- const修饰常量
- const修饰符
- Mybatis整合Spring
- 【C语言】实现对一个8bit数据的指定位的置0或者置1操作,并保持其他位不变。
- [UnityShader]RenderingPath
- 关于TI sysbios 的SWI
- opencl上下文
- const修饰问题
- spi驱动框架分析
- 强指针和弱指针
- iPlayer项目开发
- 第十四周项目2——【项目2-用文件保存的学生名单】
- opencl初步基本理解
- 倍福提供的EtherCAT从站代码包解析
- SlidingMenu 常用属性
- 利用STL二分查找范围