发布网友 发布时间:2023-06-09 06:29
共5个回答
热心网友 时间:2024-11-22 13:31
这个涉及到局部变量还是全局变量的问题,函数中的变量属于局部变量,所以再调用到之后才开辟内存空间,但局部变量所在函数调用完毕,局部变量就被取消了,然后所占内存就被收回了。 而全局变量由于作用域很广,一旦定义,编译器就会分配内存,程序运行期间这块内存单元一直有效,直到整个程序结束才由系统收回内存~~热心网友 时间:2024-11-22 13:31
编译的时候,把代码编译成obj的时候,就相当于执行了函数一次,不然怎么知道函数正确还是错误?编译完成后,关闭窗口,给变量分配的内存单元会释放。下次程序运行的时候,会再次给变量分配内存单元。热心网友 时间:2024-11-22 13:32
编译和运行,是两个不同的概念。热心网友 时间:2024-11-22 13:32
编译时只是把程序转换成机器能识别的二进制,是静态的文件,怎么会分配内存单元呢?热心网友 时间:2024-11-22 13:33
在主程序中变量分配内存单元是在对程序编译时完成,函数中的变量空间分配是在调用该函数时完成。