gpt4 book ai didi

c++ - 使用cin时是否需要将一个变量存储两次?

转载 作者:太空宇宙 更新时间:2023-11-03 10:27:02 24 4
gpt4 key购买 nike

我正在学习“Accelerated C++”,我正在将我对章末练习的答案与找到的答案进行比较 here .在为行和列填充创建用户输入时,我写道:

int colpad;
cout << "Please enter the number of columns to pad: ";
cin >> colpad;
int rowpad;
cout << "Please enter the number of rows to pad: ";
cin >> rowpad;

然后在函数的其余部分继续使用 rowpad 和 colpad。这对我有用。

但是,上述站点的解决方案的作者做了我所做的,然后添加了(为清楚起见更改了变量名称):

const int rowpad = inrowpad; // vertical padding
const int colpad = incolpad; // horizontal padding

他的解决方案同样有效。我的问题是:我是否应该将 colpad 和 rowpad 的值再次存储为 const?这不就是占用额外的内存吗?

最佳答案

没有必要将值存储到 const 版本中。使用 const 对象可以防止意外更改,并且如果编译器可以确定用于初始化 const 对象的变量不会在函数内使用额外的内存,则它可能不会使用额外的内存改变。

顺便说一句,虽然代码在不同方面是错误的:您应该始终在读取操作成功后验证:

if (!(std::cin >> colpad)) {
// deal with the read failure
}

关于c++ - 使用cin时是否需要将一个变量存储两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30418309/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com