C语言中const关键字用法详解
引:什么是const?
const 是 constant 的缩写,意思是“恒定不变的”!它是定义只读变量的关键字,或者说 const 是定义常变量的关键字。
如果一个变量被const修饰,那么它的值就不能再被改变,那么和#define对比,const修饰符有以下的优点:
1、预编译指令只是对值进行简单的替换,不能进行类型检查。
2、可以保护被修饰的东西,防止意外修改,增强程序的健壮性。
3、编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。
const用法可从以下几个方面来了解:
一: 修饰变量
- 说 const 定义的是变量,但又相当于常量;说它定义的是常量,但又有变量的属性,所以叫常变量。用 const 定义常变量的方法很简单,就在通常定义变量时前面加 const 即可,如:
const int a = 10;
int const a = 10;
这两种写法都是正确的,但是下面这种写法是错误的
int const a;
a = 10;
用 const 定义的变量的值是不允许改变的,即不允许给它重新赋值,即使是赋相同的值也不可以。所以说它定义的是只读变量。这也就意味着必须在定义的时候就给它赋初值。
2. 修饰常量静态字符串,例如:
const char* str="fdsafdsa";
如果没有const的修饰,我们可能会在后面有意无意的写str[4]=’x’这样的语句,这样会导致对只读内存区域的赋值,然后程序会立刻异常终止。有了const,这个错误就能在程序被编译的时候就立即检查出来,这就是const的好处。让逻辑错误在编译期被发现。
3. const修饰的变量与普通变量的区别?
用 const