面试题答案
一键面试- 实现代码:
// 第一个源文件,定义全局变量 #include <iostream> int globalVar = 10; // 第二个源文件 #include <iostream> extern int globalVar; void modifyGlobalVar() { globalVar = 20; } // 主函数,用于测试 int main() { std::cout << "Before modification: " << globalVar << std::endl; modifyGlobalVar(); std::cout << "After modification: " << globalVar << std::endl; return 0; }
- 方法及原理:
- 方法:在需要引用全局变量的源文件中,使用
extern
关键字声明变量。在上述代码中,在第二个源文件中使用extern int globalVar;
声明了globalVar
。 - 原理:
extern
关键字用于声明一个在其他地方定义的变量。当编译器遇到extern
声明时,它知道该变量在其他地方已经分配了内存,不会再次为其分配内存。这样,不同源文件就可以共享同一个全局变量,通过这种声明,在第二个源文件中的函数modifyGlobalVar
就可以访问并修改第一个源文件中定义的globalVar
的值。全局变量在程序的整个生命周期内存在,其作用域默认是从定义处到文件末尾,但通过extern
声明可以扩展其作用域到其他源文件。
- 方法:在需要引用全局变量的源文件中,使用