当const被认为是一个常量?

tis*_*ssa 5 c compiler-errors const

在阅读stackoverflow中的一些问题和答案时,我遇到了这个问题

我试图理解它,但答案很难理解,特别是像这样的术语

  • 静态存储时间

  • 在翻译阶段无法评估表达式

等等...

此外,我认为常数总是常数(这是我从学校学到的)

有人可以让它有点容易理解吗?

Moo*_*uck 2

这里有两个几乎完全不相关的概念:

  • “常量表达式”是可以在编译时运行的代码。
    • 4+5是一个常量表达式。
    • const A=4;有时在某些情况下A变成常量表达式,因为它是从常量表达式初始化的。(这只适用于C++,不适用于C)const4
    • B=A; A本身可能是一个常量表达式,但它B是一个变量,并且本身可能不在常量表达式中。
  • const变量是函数(或结构)承诺不会更改的变量,尽管其他事物可能会更改同一变量。