临时对象常量存储在哪里?我知道常量(例如未声明的常量)没有地址,但字符串文字除外,例如:
printf("%d", 5); // Где хранится константа? В регистре процессора? Адреса у нее нет.
int value = 10; // Аналогично
printf("%s", "I am just a string"); // Адрес у строки есть, но где она хранится? На стеке?
如果可能的话,用简单的语言)谢谢!
C/C++ 标准仅描述了这些语言的某些结构的行为方式。“幕后”程序中发生的事情并没有写在其中,因此它取决于编译器。这包括:
(虽然这很乏味......实际上,
new
在堆上创建对象,在堆栈上创建局部变量等)如果您想要一些不太正式但更实用的东西,请阅读目标文件段。
您可以将代码放入反汇编程序中(结果将取决于编译器的选择和它的标志)。
我懂了:
5
并10
成为指令mov
()的一部分。value
- 在堆栈上。