C语言面试宝典:全局变量与静态特性的深入解析

需积分: 10 1 下载量 60 浏览量 更新于2024-07-26 收藏 310KB PDF 举报
C语言面试题汇总之华为面试题涵盖了C语言基础和面试中常见的知识点。首先,关于局部变量和全局变量的关系,虽然局部变量和全局变量可以同名,但局部变量会优先使用,只有在函数内部明确使用"::"或通过extern关键字指定时才会引用全局变量。在同一个函数内,多个同名局部变量的作用域仅限于各自的声明范围。 接着,如何正确引用全局变量是面试中常被考察的问题。通常使用extern关键字声明需要使用的全局变量,若在头文件中错误声明,编译阶段会发现错误;而在其他文件中引用时,编译阶段可能不会发现问题,但在链接阶段会出现错误。值得注意的是,全局变量可以在不同的源文件中声明为静态类型,这样它们的作用域仅限于定义它们的源文件,有利于避免潜在的命名冲突。 然后,一道代码示例展示了变量自增操作的结果,通过观察可以看到变量b、c和d的值分别为10、12和120,这是因为a的初始值为10,b首先使用了原始值10,c则在a的基础上加1得到11,最后d的值是10乘以a的当前值11。 接下来,静态变量与普通变量的区别主要体现在存储方式和作用域上。静态全局变量(静态外部变量)与普通全局变量的区别在于,静态全局变量的作用域仅限于定义它的源文件,且生命周期贯穿整个程序执行,即使在源文件之外不可见。相比之下,普通全局变量在整个程序范围内可见。静态局部变量和普通局部变量的区别在于,静态局部变量在函数结束时不会被销毁,而普通局部变量则会在函数返回后自动消失。同样,静态函数与普通函数的不同在于,静态函数不能被其他源文件直接调用,其存在仅限于定义它的源文件内。 理解和掌握这些C语言的基础概念和面试技巧对于求职者来说至关重要,能够帮助他们在实际面试中更好地展示自己的技能和知识水平。