c++ - 为什么我不应该在这个简单的函数中使用 `const`?

标签 c++ parameter-passing constants

在学习 C++ 时,学习函数概念的第一个函数是这样的

int add(int a, int b)
{
    return a+b;
}

现在我想知道:我应该在这里使用 const 关键字,还是不使用,导致

int add(const int a, const int b)
{
    return a+b;
}

但这有意义吗?它会加快我的程序,做一些其他重要的事情,还是只会增加困惑?

最佳答案

调用者的角度来看,第一种和第二种形式是相同的。

由于整数是按值传递的,所以即使函数修改了ab,修改后的值也是拷贝 原始文件,调用者看不到。

但是,从功能实现者的角度来看,是有区别的。其实就是第二种形式:

int add(const int a, const int b)

如果你试图修改函数体内的 ab 的值,你会得到一个编译器错误,因为它们被标记为 const.

相反,如果您省略 const,您可以更改这些值。
同样,这些修改将对调用者可见。

关于c++ - 为什么我不应该在这个简单的函数中使用 `const`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39848541/

相关文章:

c++ - 提供第二个可选参数而不需要提供第一个可选参数?

c++ - 通过重新使用的非 `const` 名称修改动态分配的 -`const` 对象是否合法?

c - C 中未确定的字符串或字符常量

c++ - 如何使用 OpenSSL 1.1.0 验证主机名?

c++ - 尝试实现工厂模式时如何修复 'Segmentation fault (core dumped)'

c++ - Boost 正则表达式在我的代码中没有按预期工作

python - 从列表中获取函数参数

c++ - 确定没有其虚拟表指针的对象的大小

powershell - 将空值传递给 cmdlet 参数

Javascript:将对象分配给 const 变量与 let 变量