首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该在c++中使用“const”关键字吗

我应该在c++中使用“const”关键字吗
EN

Stack Overflow用户
提问于 2020-08-22 12:40:58
回答 3查看 173关注 0票数 0

我是C++新手,遇到了const关键字。我在网上查了一下,发现主要的用途是在整个程序中防止值的改变。下面有两个片段

代码语言:javascript
复制
const int size = 56;

与使用相比

代码语言:javascript
复制
int size = 56;

我为什么要用一种而另一种?使用它背后的想法是什么。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-08-22 12:45:14

是的,如果您不打算在初始化后更改它的值,则应该使所有变量const。这防止了错误,当您意外地更改了不应该更改的值时。你似乎已经意识到这一点了。

此外,还有一些您可能不知道的事情,那就是让int变量const也使它成为常量表达式,只要初始化器本身也是常量表达式,例如int文字56。这允许您在需要常量表达式的上下文中使用它,例如,作为静态数组的维度:

代码语言:javascript
复制
const int size = 56;
int a[size]; // ok
代码语言:javascript
复制
int size = 56;
int a[size]; // error
票数 5
EN

Stack Overflow用户

发布于 2020-08-22 13:10:30

在c++中,当您想声明不会在整个程序中更改其值的内容时,会使用CONST。但是,如果您不小心尝试重写它的值,编译器将通过一个错误。在大多数情况下,建议声明一个int类型的变量,以便在需要时重新定义它的值。当您要声明静态数组时使用CONST,即

代码语言:javascript
复制
const int a = 100;
int sampleAray[a];

当您使用int时,变量的值将在某个点被修改,即

代码语言:javascript
复制
int a = 12;

int arr[4] = {11,22,33,554};

for (int i=0; i<4; i++){
    if(arr[i]%2 == 0){
         a+=arr[i];
     }
}
票数 2
EN

Stack Overflow用户

发布于 2020-08-22 12:45:35

如果有一个const变量保存了一些不应该更改的内容,并且意外地编写了修改变量的代码,那么您就会得到一个很好的编译器错误,并且可以很容易地纠正错误。如果变量是非const,则编译器无法帮助您,您现在有一个很难找到的bug。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63536305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档