C语言面试宝典
本文档是关于C语言面试的宝典,涵盖了C语言的基础知识和高级概念,旨在帮助开发者快速掌握C语言的要点和难点。
本文档包含以下知识点:
1. 关键字static的作用:static关键字在C语言中有三个明显的作用:在函数体中,static变量在函数调用过程中维持其值不变;在模块内,static变量可以被模块内的函数访问,但不能被模块外的函数访问;在模块内,static函数只能被模块内的函数调用。
2. 引用与指针的区别:引用和指针是C语言中两个不同的概念,引用必须被初始化,指针不必;引用初始化以后不能被改变,指针可以改变所指的对象;不存在指向空值的引用,但是存在指向空值的指针。
3. .h文件的作用:.h文件的作用是防止头文件被重复引用,防止头文件被重复引用。
4. #include<file.h>与#include "file.h"的区别:前者是从Standard Library的路径寻找和引用file.h,而后者是从当前工作路径搜寻并引用file.h。
5. 实时系统的基本特性:实时系统的基本特性是,在特定时间内完成特定的任务,实时性与可靠性。
6. 全局变量和局部变量在内存中的区别:全局变量储存在静态数据区,局部变量在堆栈中。
7. 平衡二叉树的定义:左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1。
8. 堆栈溢出的原因:堆栈溢出一般是由没有回收垃圾资源和层次太深的递归调用引起的。
9. 冒泡排序算法的时间复杂度:冒泡排序算法的时间复杂度是O(n^2)。
10. 不能声明为虚函数的函数:constructor函数不能声明为虚函数。
11. 队列和栈的区别:队列先进先出,栈后进先出。
12. 不能做switch()参数类型:switch的参数不能为实型。
13. 局部变量和全局变量的命名规则:局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。
14. 引用一个已经定义过的全局变量的方法:可以用引用头文件的方式,也可以用extern关键字。
15. 全局变量可以定义在可被多个.C文件包含的头文件中吗?:可以,在不同的C文件中以static形式来声明同名全局变量。
16. 语句for( ;1 ;)的作用:该语句和while(1)相同,无限循环。
17. do...while和while的区别:前一个循环一遍再判断,后一个判断以后再循环。
18. static全局变量、局部变量、函数与普通全局变量、局部变量、函数的区别:static关键字可以用来修饰全局变量、局部变量和函数,static全局变量和普通全局变量的区别是,static全局变量只能被模块内的函数访问,而普通全局变量可以被所有函数访问。