资料介绍
c语言中const的用法 关于 CONST 的用法
const 在 C 语言中算是一个比较新的描述符,我们称之为常量修饰符,意即其所修饰
的对象为常量(immutable)。我们来分情况看语法上它该如何被使用。
1.函数体内修饰局部变量。例:
void func(){
const int a=0;
}
首先,我们先把 const 这个单词忽略不看,那么 a 是一个 int 类型的局部自动变量,
我们给它赋予初始值 0。然后再看 const.const 作为一个类型限定词,和 int 有相同的地位
const int a;
int const a;
是等价的。于是此处我们一定要清晰的明白,const 修饰的对象是谁,是 a,和 int 没有关系。
const 要求他所修饰的对象为常量,不可被改变,不可被赋值,不可作为左值(l-value)。
这样的写法也是错误的。
const int a;
a=0;
这是一个很常见的使用方式:
const double pi=3.14;
在程序的后面如果企图对 pi 再次赋值或者修改就会出错。
然后看一个稍微复杂的例子。
const int* p;
还是先去掉 const 修饰符号。注意,下面两个是等价的。
int* p;
int *p;
其实我们想要说的是,*p 是 int 类型。那么显然,p 就是指向 int 的指针。同理
const int* p;其实等价于
const int (*p);
int const (*p);
即,*p 是常量。也就是说,p 指向的数据是常量。于是
p+=8; //合法