CC++中const关键字如何使用,与宏常量有何区别?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2856个文字,预计阅读时间需要12分钟。
1. `const` 关键字的特性:简单来说,`const` 关键字修饰的变量具有常属性。即它所修饰的变量不能被修改。
2.修饰局部变量:`const int a=10;` 和 `int const b=20;` 这两种写法是等价的,都表示变量的值不可更改。
1.const关键字的性质
简单来说:const关键字修饰的变量具有常属性。 即它所修饰的变量不能被修改。
2.修饰局部变量
const int a = 10; int const b = 20;
这两种写法是等价的,都是表示变量的值不能被改变,需要注意的是,用const修饰变量时,一定要给变量初始化,否则之后就不能再进行赋值了,而且编译器也不允许不赋初值的写法:
在C++中不赋初值的表达一写出来,编译器即报错,且编译不通过。
在C中不赋初值的表达写出来时不报错,编译时只有警告,编译可以通过。而当你真正给它赋值时才会报错,那么没有初值也不能被赋值这样的变量有什么用哪?
const chsr* p = "qwerty"; //const用于修饰常量静态字符串
如果没有const的修饰,我们可能会在后面有意无意的写p[4]='x'这样的语句,这样会导致对只读内存区域的赋值,然后程序会立刻异常终止。有了const,这个错误就能在程序被编译的时候就立即检查出来,这就是const的好处。让逻辑错误在编译期被发现。(这个特性在C/C++中相同)
3.修饰指针
常量指针是指针所指向的内容是常量,不可被修改。
本文共计2856个文字,预计阅读时间需要12分钟。
1. `const` 关键字的特性:简单来说,`const` 关键字修饰的变量具有常属性。即它所修饰的变量不能被修改。
2.修饰局部变量:`const int a=10;` 和 `int const b=20;` 这两种写法是等价的,都表示变量的值不可更改。
1.const关键字的性质
简单来说:const关键字修饰的变量具有常属性。 即它所修饰的变量不能被修改。
2.修饰局部变量
const int a = 10; int const b = 20;
这两种写法是等价的,都是表示变量的值不能被改变,需要注意的是,用const修饰变量时,一定要给变量初始化,否则之后就不能再进行赋值了,而且编译器也不允许不赋初值的写法:
在C++中不赋初值的表达一写出来,编译器即报错,且编译不通过。
在C中不赋初值的表达写出来时不报错,编译时只有警告,编译可以通过。而当你真正给它赋值时才会报错,那么没有初值也不能被赋值这样的变量有什么用哪?
const chsr* p = "qwerty"; //const用于修饰常量静态字符串
如果没有const的修饰,我们可能会在后面有意无意的写p[4]='x'这样的语句,这样会导致对只读内存区域的赋值,然后程序会立刻异常终止。有了const,这个错误就能在程序被编译的时候就立即检查出来,这就是const的好处。让逻辑错误在编译期被发现。(这个特性在C/C++中相同)
3.修饰指针
常量指针是指针所指向的内容是常量,不可被修改。

