2013年IT公司笔试题汇总:全局与局部变量、静态变量解析

需积分: 0 1 下载量 52 浏览量 更新于2024-09-11 收藏 97KB DOC 举报
"这篇资料是关于2013年IT公司笔试题目的总结,主要针对应届生求职,涉及编程语言C/C++以及嵌入式开发领域的知识。内容包括变量的作用域、全局变量的使用、循环结构的区别以及switch语句的限制等基本编程概念。" 在编程中,局部变量和全局变量的管理是至关重要的。标题中提到的一个问题是,局部变量是否可以与全局变量同名。答案是肯定的,但当在函数内部定义了同名的局部变量时,它会遮蔽全局变量,也就是说,在函数内部访问的将是局部变量,而非全局变量。如果需要在函数内部使用全局变量,可以使用作用域解析运算符"::"来显式引用。 描述中提到了如何引用全局变量,一种方法是通过extern关键字,这允许你在当前文件中声明对其他文件中定义的全局变量的引用。extern可以放在头文件中,但要注意,如果头文件中的变量声明有误,使用头文件的方式在编译阶段就会报错,而使用extern关键字则会在链接阶段报错。 接着讨论了全局变量在多个.C文件中的使用。全局变量可以定义在头文件中,但为了防止命名冲突,每个.C文件中应该以static修饰来声明同名全局变量。只有其中一个文件对其赋值,其他文件只能访问到其声明,不会引发连接错误。 for(;1;)语句与while(1)类似,它们创建了一个无限循环,因为条件始终为真。 do...while和while...do循环的区别在于执行顺序。do...while先执行循环体,再检查条件,所以至少执行一次。而while...do则是先检查条件,条件满足才执行循环体。 switch语句的参数不能是浮点型(实型),因为switch通常用于基于整型或枚举类型的控制流决策。 static变量有两种类型:静态全局变量和静态局部变量。静态全局变量只在其定义的源文件内可见,限制了其作用域,降低了命名冲突的可能性。静态局部变量则在函数调用结束后仍保留其值,下次调用时会保持上次的值,不同于常规局部变量,它们在每次函数调用时都会初始化。 最后,static函数的特性是它们的作用域仅限于定义它们的源文件,不被其他文件所见,这种限制使得static函数成为实现模块化和封装的好工具,避免了函数命名冲突。 这份资料涵盖了编程基础中的关键知识点,包括变量的作用域、全局变量的使用、循环结构、switch语句的限制以及static变量和函数的作用,对于准备面试和学习C/C++的应届生来说是一份有价值的复习材料。