字面量和常量是如何被程序解释和保存的
How literals and constants are being interpreted and saved by the program
既然变量必须由数据类型定义,我不能理解为什么这不适用于字面量和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
。
相关文章:
- 内联程序集printf将整数解释为地址
- 有人可以在下面的示例 C++ 程序中解释字符数组 KCHAR1 的奇怪行为吗?
- 请有人解释该程序的工作原理
- 您可以在此程序中解释Array 5的目的吗?
- 解释程序的输出
- 在 c++ 程序中调试链表以添加两个数字: 有人可以解释为什么 l3=l3->next;导致错误?
- 任何人都可以解释此程序的类型促销以及为什么输出相同
- 字符串中的空格是否会改变程序解释它的方式
- 有人可以向我解释一下这段代码是如何工作的吗?(程序在预期数值且用户输入其他输入时再次要求用户输入)
- 程序读取文字或解释变量所需的时间是否更少
- C++中更快地执行两个程序的可能解释(使用 Python 比较)?
- 有人可以解释为什么这个程序可以计算小数点后的位数
- 有人可以解释为什么该程序显示我 6 和 4
- 有人可以解释这个 c++ 程序的输出吗?
- C++:帮助解释简单程序的行为
- 有人可以解释这个程序如何提供这个输出
- QT应用程序无法解释使用SQLite插入功能
- 解释 C++/SDL2 程序的 valgrind 输出
- C++带有地图的程序 - 解释下面的程序是如何工作的
- 字面量和常量是如何被程序解释和保存的