2013年IT公司笔试题汇总:全局与局部变量、静态变量解析
下载需积分: 0 | DOC格式 | 97KB |
更新于2024-09-11
| 112 浏览量 | 举报
"这篇资料是关于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++的应届生来说是一份有价值的复习材料。
相关推荐










0IT_it0
- 粉丝: 1
最新资源
- 掌握Android ExoPlayer实现高效视频播放
- 科技企业商务PPT模板设计
- C#实现CRC校验工具:源码学习与应用
- WPF中实现CallOut箭头指向鼠标点击位置的方法
- 开发devtwitter模块:Linux下的Twitter驱动实现
- A4纸张排版神器:PrintDocPlus打印模板工具
- 自定义化Bootstrap 3:快速集成与页面展示
- So Sánh Các Sở不定詞 Hoc Edumall, Unica, Kyna 使用 CRX 插件
- 全面介绍Visio 2000的中文学习教程PDF
- 工艺生产PPT模板:针线手工活设计资源
- 网名大汇总:Excel文件里找创意昵称
- Kotlin实现协程友好型Android Debug Bridge客户端
- 易语言实现获取电脑历史登录QQ号的方法
- 家谱先生7.1:宗谱制作软件,便捷电子化与纸质化
- 多种图像去噪算法及其实现原理详解
- MQ-2气体传感器的数据传输与环境侦测