请教高手,程序编译时和运行时有什么不同?
全局变量和静态全局变量等具有文件作用域的变量在声明后在在编译的时候分配内存空间吗?
还有:如果类的定义改变了,例如增加了数据成员,那么利用这个类的客户,比方说客户声明了此类的一个对象,这个对象是在重新编译的时候被替换还是在程序运行的时候?当然类对象的定义和类的定义不在同一个源文件下。
如果声明一个全局数组,例如int a[10], 必须在编译的时候将数组大小确定,这是不是说明,在编译的时候将为此数组分配内存空间????、如果重新编译的话会使客户对象重新生成,那么数组就应该是在编译的时候分配的内存空间对吗?声明一个局部函数内的数组呢??
加入声明的数组带有初始化,即这样int a[10]={0,1,2},那么这些初始化时在运行的时候还是在编译的时候?如果是在运行时,那在编译的时候为什么还要分配内存空间?
好多疑问,请高手不吝指教!