书籍为什么说"编译器为内存中的变量分配空间".这不是可执行文件吗?我的意思是,例如,如果我写下面的程序,
#include <iostream>
using namespace std;
int main()
{
int foo = 0;
cout<<foo;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我运行program.exe,这个可执行文件将自己命令为变量foo分配一些空间,并编译它,并获得一个可执行文件(让它成为program.exe).不是吗?请解释为什么书籍继续说,"编译器会这样做......这样做"而实际上,编译后的可执行文件就是这样做的.
在这个问题中添加另一个相关问题,为什么sizeof称为编译时运算符?它不是一个实际的运行时运算符吗?