C++笔记 const
const作用:
const是常量标识符。防止数据被修改。
使用方法:
1. 常量使用的时候需要进行初始化否则无法使用。
2. 常量字符串指针使用:
- 当定义一个常量字符串指针
如图:
很显然是无法进行修改的并且会报错表达式是可以修改的左值。 - 指针的自增,自减。
如图:
常量指针是可以正常进行移动的这个并不影响。
3. 指针的赋值
如图:
可以看到指针的指向的内容发生了变化说明常量指针是可以正常进行复制但是无法修改。
4. char const * 与 const char* 效果是一样的。
如图:
5. char * const 特殊性
如图:
可以发现的是,当关键字位置发生改变后指针p就不能进行任何操作了相当于"锁死"。
- 常量引用
如图:
可以直接对值进行引用原因是右值是一个常量值,所以是可以直接引用的。
总结:
上面所列出来的所有用法都是利用不同的结合方向与优先级进行的。需要注意的事const char 是一种变量类型是常量字符,char* const请注意的是符号顺序不一致,首先它是一个char* 然后const只是对后面的变量进行修饰。修饰的对象不同则限定的权限不同,char& const 限定的是变量本身的写入权限,而const char * 本质上是限定的char * 的权限。所以一旦定义就无法修改。其他写法都是同理。
逆向分析:
在汇编来看不同的写法最后生成的汇编代码是一致的,所以这种权限上的限定它都是在编译器之间就已经完成了。在汇编上并无差异。