C语言面试精华:全局变量与局部重名及特性解析

需积分: 10 3 下载量 168 浏览量 更新于2024-09-16 1 收藏 2.81MB PDF 举报
本资源是一份针对C语言面试题的大汇总,包含了常见的面试问题及其解答,对于准备C语言面试的求职者来说具有很高的实用价值。以下是一些关键知识点: 1. 局部变量与全局变量重名:尽管局部变量可以与全局变量同名,但在函数内部,局部变量会屏蔽全局变量。如果在同一函数中有多个同名局部变量,它们的作用域仅限于各自所在的循环或代码块。 2. 引用全局变量:通过`extern`关键字可以在其他文件中引用已经定义的全局变量。如果在编译期间遇到`extern`声明的全局变量,编译器会在链接阶段查找定义;如果没有定义,编译时会出现错误。 3. 全局变量的共享与初始化:全局变量可以在多个`.C`文件中声明,但必须确保仅在一个文件中进行静态初始化,以避免潜在的初始化冲突。 4. `for`循环结构:`for( ; 1; )`等同于无限循环`while(1)`,即循环条件始终为真,一直执行循环体内的代码。 5. `do...while`和`while...do`循环的区别:`do...while`先执行一次循环体再判断条件,而`while...do`则是先判断条件再执行循环体,这在控制循环次数上有所差异。 6. C语言示例程序:给出的代码展示了变量声明和操作,`a`、`b`、`c`和`d`的初始值分别为10、11、12和120,输出结果为10、12和120。 7. `static`全局变量与普通全局变量:`static`修饰的全局变量是静态存储类别的,它们的生命周期从定义开始直到程序结束,只在首次声明时初始化一次。相比之下,普通全局变量在每个函数调用时都会重新初始化。另外,`static`局部变量和函数也具有类似的静态特性,它们只在首次进入函数时创建,并保持状态直到函数退出。 这份资料提供了C语言基础概念和面试常见问题的深入理解,对于想要提升C语言技能和面试表现的人来说,是不可多得的参考资料。