c语言和c++中的const

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/shunli008/article/details/78823593

先看下面这个题##

关于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’
这也证实了上面的说法,它是一个只读变量,而非常量。

猜你喜欢

转载自blog.csdn.net/shunli008/article/details/78823593