有一个问题让我很困惑.
int main(int argc, char *argv[])
{
int i = 12345678;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
int main(int argc, char *argv[])
{
int i = 0;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
程序总共具有相同的字节.为什么?
那个字面值确实存储在哪里?文字段或其他地方?
这些程序总共有相同的字节.为什么?
有两种可能性:
编译器正在优化变量.它没有在任何地方使用,因此没有意义.
如果1.不适用,程序大小无论如何都是相同的.他们为什么不应该?0
和...一样大12345678
.两个类型的变量T
在内存中占用相同的大小.
那个字面值确实存储在哪里?
在堆栈上.局部变量通常存储在堆栈中.