版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
先看下面这个题##
关于const用法,以下错误的是
A int const a = 3; int *p = &a;
B int a = 3; int const *p = &a;
C int a = 3; int * const p = &a;
D const int a = 3; int const &b = a;
选哪个?
这是我学c++时候的一道题,只有过C语言的可能对d选项不太了解。
下面介绍一下c语言(c++)中的const
const是一个关键字,它限定一个变量不允许被改变,产生静态作用,这就相当于给一个变量加上权限,变成一个只读变量,但是不能修改其值。
const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。(百度百科)
下面分条介绍const的具体用法
1.修饰普通变量
const int x = 3;
int型的x被const修饰变成了一个只读变量(有的视频上说变成了一个常量,我认为这种说法不太准确),它的值只能被读取,但是不能被改变,例如
const int x = 3;
x = 5;//这是错误的
这种写法在编译器中会提示错误(不同编译器提示不同)
error: assignment of read-only variable ‘x’
这也证实了上面的说法,它是一个只读变量,而非常量。