c语言终极宝典(整理书签版).pdf

preview
需积分: 0 12 下载量 6 浏览量 更新于2021-07-07 1 收藏 1.61MB PDF 举报
C语言是计算机编程领域的经典语言,它以其高效性、灵活性和底层操作能力而闻名。C语言宝典是一款为编程初学者准备的书籍,提供了丰富的资源和实用的函数速查工具,还有大量试题和面试准备材料。以下是从提供的文件内容中整理出的关于C语言的详细知识点。 一、关键字static的三个作用: 1. 在函数体中,static声明的变量在函数多次调用间保持值不变。 2. 在模块内(非函数内),static声明的变量是该模块内所有函数可访问的局部全局变量。 3. 在模块内,static声明的函数只限在该模块内被调用,实现模块化编程。 二、引用与指针的区别: 1. 引用在定义时必须被初始化,而指针无需在定义时初始化。 2. 引用一旦初始化后,其别名就不能更改,而指针可以更改所指向的地址。 3. 引用不存在空值情况,而指针可以为空。 三、头文件中的条件编译指令#ifndef/#define/#endif的作用: 防止头文件被多次包含而导致编译错误,确保每个头文件只被编译一次。 四、头文件包含指令的区别: #include<file.h>通常用于包含标准库中的文件,它从预定义的标准库路径查找文件。 #include"file.h"通常用于包含用户自定义的文件,从当前工作目录开始查找。 五、实时系统的基本特性: 实时系统要能在特定的时间内完成特定任务,并且需要保证系统的实时性和可靠性。 六、全局变量与局部变量的区别: 全局变量存储在静态数据区,而局部变量存储在堆栈中。 七、平衡二叉树的概念: 左右子树都是平衡二叉树,且左右子树的深度差值的绝对值不超过1。 八、堆栈溢出的原因: 1. 未回收的垃圾资源。 2. 层次太深的递归调用。 九、冒泡排序算法的时间复杂度: 冒泡排序的时间复杂度为O(n^2)。 十、不能声明为虚函数的类型: 构造函数不能被声明为虚函数。 十一、队列与栈的区别: 队列是先进先出(FIFO)的数据结构,而栈是后进先出(LIFO)。 十二、switch()语句中不能使用的参数类型: 实型参数不能用在switch()语句中。 十三、局部变量与全局变量同名的情况: 局部变量可以与全局变量同名,在函数作用域内会优先使用局部变量。 十四、引用全局变量的方法: 可以通过引用头文件或者使用extern关键字来声明全局变量。 十五、全局变量的定义位置: 全局变量可以在头文件中定义,并通过static关键字限制其作用范围在一个或多个文件中。 十六、无限循环的表示方式: for(;1;)与while(1)均为无限循环的表示方法。 十七、do...while和while...do循环的区别: do...while循环是先执行一次循环体再进行条件判断,while...do循环是先进行条件判断后执行循环体。 十八、static修饰的全局变量、局部变量和函数的特点: static全局变量与普通全局变量相比,其作用域局限于定义它的源文件。 static局部变量与普通局部变量相比,具有更长的生命周期,直到程序结束。 static函数只能在定义它的模块内被调用,限制了其作用范围,增加了模块间的独立性。 这些知识点涵盖了C语言编程中的基本概念、内存管理、数据结构、控制流、函数设计等关键内容,是学习和掌握C语言的宝贵资源。对于编程初学者而言,这些知识能够帮助其打下坚实的编程基础,为深入学习计算机科学和软件开发奠定基础。