本书聚焦于华为和中兴公司的招聘要求,深入剖析了C/C++编程语言在技术面试中的重点难点,旨在帮助求职者掌握相关知识和技术技能。
华为与中兴在C/C++笔试面试中的常见知识点包括以下内容:
1. **static全局变量、普通全局变量及局部静态变量的区别**:
- static全局变量:仅限于定义它的文件内可见,不能通过其他文件访问。
- 普通全局变量:在整个程序范围内都可被引用和修改。
- static局部变量:在函数内部声明的static关键字修饰的局部变量,在整个程序运行期间保持其值不变,并且不会因为每次调用该函数而重新初始化。
2. **普通函数与静态(static)函数的区别**:
- 普通函数可以在任何文件中被引用和使用。
- 静态(static)函数:仅在定义它的源代码文件内可见,不能通过其他文件访问。
3. **extern 关键字的用途**:
- extern用于声明一个全局变量或外部链接符,在不同编译单元之间共享同一块内存区域。当在一个源码文件中需要使用另一个源码文件中的全局变量时可以使用extern关键字来引用该全局变量,相当于扩大了其作用域。
4. **静态(static)存储类别的作用**:
- 限制了全局变量或函数的可见性范围至定义它的单一文件内。即使其他源代码文件中试图通过extern声明访问它也无法成功。
5. **堆(Heap)与栈(Stack)**的区别:
- Stack:内存由操作系统自动管理,分配和释放过程无需程序员手动操作;Stack空间有限制且生命周期短,一旦函数执行完毕其局部变量所占的Stack空间即被回收;
- Heap:提供更大的自由存储区供动态内存申请使用。程序中通过malloc或new等方法可以获取Heap上的内存资源,并需要显式调用free或者delete释放。
以上就是华为面试题集中关于C语言的基础知识部分,涵盖了一些重要的概念和区别点。