字面量和常量是如何被程序解释和保存的

How literals and constants are being interpreted and saved by the program

本文关键字:程序 解释 保存 常量      更新时间:2023-10-16

既然变量必须由数据类型定义,我不能理解为什么这不适用于字面量和const。程序如何判断必须将const的值保存为int型还是double型等等?它如何使用算术运算符来计算,例如两个const的和。我的意思是,如果它被保存为三个(2,3,4)数字的序列,它如何从234中提取数值。如果这个数字没有先被数据类型转换,它怎么可能有值呢?我的意思是,当你输入这些数字时,它们不是被保存为另一个字符吗?我的意思是我知道我错了,但请告诉我为什么。

文字确实有类型。例如,

  • 234类型为int
  • 23.4类型为double
  • 'a'的类型为char
  • "hello, world"的类型为const char[13]

字面值的类型可以用前缀和后缀修改。例如,

  • 234u的类型为unsigned int
  • 23.4f的类型为float
  • L'a'的类型为wchar_t
  • L"hello, world"类型为const wchar_t[13]

c++ 11增加了其他类型的内置文字和用户定义的文字。

每个文字都有一个定义良好的类型。当然,像234这样的文字很容易转换为任何数字类型,这就是为什么可以使用double x = 234;。尽管如此,234在此上下文中仍然具有int类型,而不是double