我目前正在阅读来自 TutorialsPoint 的 c++ 教程中的常量,它说:
常量是指程序可能不会改变的固定值,它们被称为文字。 ( 来源)
我真的不明白这一点。如果常量被称为字面量,而字面量是代码中直接表示的数据,那么常量怎么能被认为是字面量呢?我的意思是 const 关键字前面的变量是常量,但它们不是文字,那么你怎么能说常量是文字呢?
原文由 user8137991 发布,翻译遵循 CC BY-SA 4.0 许可协议
我目前正在阅读来自 TutorialsPoint 的 c++ 教程中的常量,它说:
常量是指程序可能不会改变的固定值,它们被称为文字。 ( 来源)
我真的不明白这一点。如果常量被称为字面量,而字面量是代码中直接表示的数据,那么常量怎么能被认为是字面量呢?我的意思是 const 关键字前面的变量是常量,但它们不是文字,那么你怎么能说常量是文字呢?
原文由 user8137991 发布,翻译遵循 CC BY-SA 4.0 许可协议
这里:
const int MEANING = 42;
值 MEANING 是一个常量, 42 是一个文字。这两个术语之间没有真正的关系,如下所示:
int n = 42;
其中 n
不是常数,但 42 仍然是文字。
主要区别在于常量可能在内存中具有地址(如果您编写一些需要这样的地址的代码),而文字从来没有地址。
原文由 user2100815 发布,翻译遵循 CC BY-SA 3.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
您引用的那篇文章将“常量”一词 定义 为“字面”的同义词。后者是 C++ 标准对其所描述内容的术语。前者是 C 标准用于相同概念的内容。
在那里,您为“常数”一词提供了另一种定义,您是对的,它与另一个不一致。就这样。 TP 使用的术语定义与您习惯使用的定义不同。
实际上,尽管“常量”的名词用法出现在 C++ 标准中定义的术语“空指针常量”之外的几个地方,显然与您在此处提出的含义相同,我没有找到该术语的实际定义,尤其是没有一个匹配你的。实际上,您的定义不如 TutorialPoint 的合理,因为具有
const
限定类型的表达式仍然可以指定一个可修改的对象(通过不同的表达式)。