面试题答案
一键面试-
函数内部声明的结构体变量:
- 作用域:其作用域仅限于该函数内部。从声明处开始,到函数结束处结束。
- 访问:只能在声明它的函数内部访问。
- 生命周期:在函数被调用时创建,函数执行结束时销毁。
示例代码:
#include <stdio.h> void testFunction() { // 函数内部声明结构体 struct InnerStruct { int value; }; struct InnerStruct innerVar = {10}; printf("Inner variable value: %d\n", innerVar.value); } int main() { testFunction(); // 这里无法访问 innerVar,因为其作用域在 testFunction 内 return 0; }
-
文件作用域声明的结构体变量:
- 作用域:从声明处开始,到文件结束处结束。如果该文件被其他文件通过
#include
包含,那么其作用域扩展到包含它的文件。 - 访问:在声明之后的同一文件内的任何函数都可以访问。如果结构体变量被声明为
extern
,其他文件也可以访问。 - 生命周期:从程序开始执行时创建,到程序结束时销毁。
示例代码:
#include <stdio.h> // 文件作用域声明结构体 struct OuterStruct { int value; }; struct OuterStruct outerVar = {20}; void accessOuterVar() { printf("Outer variable value: %d\n", outerVar.value); } int main() { accessOuterVar(); return 0; }
- 作用域:从声明处开始,到文件结束处结束。如果该文件被其他文件通过