C语言面试精华:全局变量与局部、静态特性和常见问题解析

需积分: 9 3 下载量 38 浏览量 更新于2024-07-28 1 收藏 173KB DOC 举报
在C语言面试中,面试官经常提问一些关键概念,以测试应聘者对语言的理解深度。以下是一些重要的知识点: 1. 局部变量与全局变量重名:局部变量可以与全局变量同名,但局部变量优先级更高。在函数内部使用时,会优先使用局部变量。若需在函数外使用全局变量,需使用`::`来明确指定。 2. 引用全局变量:使用`extern`关键字或包含头文件的方式来引用已定义的全局变量。如果头文件中的变量声明有误,编译阶段会报错,但使用`extern`时,错误可能在链接阶段才会暴露。 3. 全局变量的使用:尽管可以跨文件声明全局变量,但通常建议每个文件中仅使用`static`声明的全局变量,这样避免链接时可能出现的冲突。一个文件内可以初始化,但在其他文件中不能直接访问。 4. 循环结构的陷阱:`for(;;)`和`while(1)`等价,表示无限循环。`do...while`和`while...do`的区别在于,`do...while`先执行一次循环体再进行条件判断,而`while...do`则是先判断条件再执行。 5. 输出代码示例:给出的代码中,`b`, `c`, 和 `d` 的值分别为 10(因为 `a` 原值),12(`a` 自增后的值),和 120(`a` 乘以 10 后自增)。 6. 静态变量的区别:`static`修饰全局变量、局部变量和函数,它们分别有以下特性: - 静态全局变量:存储在静态存储区,作用域限定于文件范围,其他文件无法直接访问。 - 静态局部变量:生命周期与函数执行相关,函数退出后消失。 - 静态函数:在函数内部声明的`static`函数,只在其所在模块可见,且不占用栈空间。 理解这些知识点对于准备C语言面试至关重要,它们不仅考察编程基础,还涉及数据结构、内存管理和程序控制流等方面。面试时不仅要能准确解释这些概念,还要能举出实际应用案例。