C++ 为什么要将变量标记为常量?

C++ 为什么要将变量标记为常量?,c++,variables,constants,C++,Variables,Constants,可能重复: 除了不能更改成本变量这一点之外,它是使用更少的内存还是可以更快地访问值 const int a = 1; int b = 1; 考虑到它是同一个全局、本地和类成员 谢谢 它使用更少的内存还是可以更快地访问值 const int a = 1; int b = 1; 通常都不是。它只是使程序更加健壮,因为您(或其他人)不能意外更改值 当您希望向消费者表明您不会修改他们的值时,这在公共API中特别有意义。变量的每次修改都意味着程序状态的变化。为了确保程序正常运行,程序员需要跟踪状态,

可能重复:

除了不能更改成本变量这一点之外,它是使用更少的内存还是可以更快地访问值

const int a = 1;
int b = 1;
考虑到它是同一个全局、本地和类成员

谢谢

它使用更少的内存还是可以更快地访问值

const int a = 1;
int b = 1;
通常都不是。它只是使程序更加健壮,因为您(或其他人)不能意外更改值

当您希望向消费者表明您不会修改他们的值时,这在公共API中特别有意义。变量的每次修改都意味着程序状态的变化。为了确保程序正常运行,程序员需要跟踪状态,如果他们不知道变量何时或如何更改,这将非常困难

因此,
const
的主要目的是记录语义,这是一个非常强大的目的。经常使用
const

它使用更少的内存还是可以更快地访问值

const int a = 1;
int b = 1;
通常都不是。它只是使程序更加健壮,因为您(或其他人)不能意外更改值

当您希望向消费者表明您不会修改他们的值时,这在公共API中特别有意义。变量的每次修改都意味着程序状态的变化。为了确保程序正常运行,程序员需要跟踪状态,如果他们不知道变量何时或如何更改,这将非常困难


因此,
const
的主要目的是记录语义,这是一个非常强大的目的。经常使用常量。

引用常量变量不会更快。为此使用
restrict
参数


标准库字符串函数将使用const让您知道数据结构没有副作用,它用于建立只读策略并避免副作用。

引用const变量并不快。为此使用
restrict
参数


标准库字符串函数将使用const让您知道数据结构没有副作用,它用于建立只读策略并避免副作用。

可能重复的字符串也会影响优化,但仅当应用于对象定义时,当与指针一起使用时不会。它也会影响优化,但仅当应用于对象定义时,而不是与指针一起使用时。