面试准备每日五题:C++(三)——全局&局部变量、内存分配、strcpy&sprintf&memcpy、函数指针、引用1. 全局变量和局部变量有什么区别?是怎么实现的?操作系统和编译器是怎么知道的?2. 简述C、C++程序编译的内存分配情况3. 简述strcpy、sprintf 与memcpy 的区别4. 解析(*(void (*)( ) )0)( )的含义5. C语言的指针和引用和c++的有什么区别?
1. 全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么知道的?全局变量是整个程序都可访问的变量,谁都可以访问,生存期在整个程序从运行到结束(在程序结束时所占内存释放);而局部变量存在于模块(子程序,函数)中,只有所在模块可以访问,其他模块不可直接访问,模块结束(函数调用完毕),局部变量消失,所占据的内存释放。操作系统和编译器,可能是通过内存分配的位置来知道的,全局变量分配在全局数据段并且在程序开始运行的时候被加载。局部变量则分配在堆栈里面;2. 简述C、C++程序编译的内存分配