基于对标准注释的更正。
3.14 对象是驻留在物理内存地址的变量或常量。
- 在 C 中,常量不驻留在内存中(某些字符串文字除外),因此不是对象。
对我来说,一个 const 不会有一个实际的内存位置(可能除了字符串文字)并且它取决于编译器,它很可能会用文字值替换对它的所有引用,这对我来说是有意义的。话虽如此,以下怎么可能?
const int * foo;
这声明了一个指向 a 的指针const int
。但是,常量没有地址,那么这到底是什么意思呢?您不能拥有指向仅在编译时存在的文字值的指针。