摘要:
C 标准库 简介 C 标准库的 assert.h 头文件提供了一个名为 assert 的宏,它可用于验证程序做出的假设,并在假设为假时输出诊断消息。 已定义的宏 assert 指向另一个宏 NDEBUG ,宏 NDEBUG 不是 的一部分。如果已在引用 的源文件中定义 NDEBUG 为宏名称,则 a 阅读全文
摘要:
排序算法 冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。 过程演示: 希尔排序 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定 阅读全文
摘要:
可变参数 有时,您可能会碰到这样的情况,您希望函数带有可变数量的参数,而不是预定义数量的参数。C 语言为这种情况提供了一个解决方案,它允许您定义一个函数,能根据具体的需求接受可变数量的参数。下面的实例演示了这种函数的定义。 请注意,函数 func() 最后一个参数写成省略号,即三个点号( ... ) 阅读全文
摘要:
头文件 头文件是扩展名为 .h 的文件,包含了 C 函数声明和宏定义,被多个源文件中引用共享。有两种类型的头文件:程序员编写的头文件和编译器自带的头文件。 在程序中要使用头文件,需要使用 C 预处理指令 include 来引用它。前面我们已经看过 stdio.h 头文件,它是编译器自带的头文件。 引 阅读全文
摘要:
文件读写 上一章我们讲解了 C 语言处理的标准输入和输出设备。本章我们将介绍 C 程序员如何创建、打开、关闭文本文件或二进制文件。 一个文件,无论它是文本文件还是二进制文件,都是代表了一系列的字节。C 语言不仅提供了访问顶层的函数,也提供了底层(OS)调用来处理存储设备上的文件。本章将讲解文件管理的 阅读全文
摘要:
共用体 共用体 允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。共用体提供了一种使用相同的内存位置的有效方式。 定义共用体 为了定义共用体,您必须使用 union 语句,方式与定义结构体类似。union 语句定义了一个新的数据类型,带有多 阅读全文
摘要:
函数指针 函数指针是指向函数的指针变量。 通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。 函数指针可以像一般函数一样,用于调用函数、传递参数。 函数指针变量的声明: 以下实例声明了函数指针变量 p,指向函数 max: 编译执行,输出结果如下: 请输入三个数字:1 2 阅读全文
摘要:
emum(枚举) 枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。 枚举语法定义格式为: 举个例子,比如:一星期有 7 天,如果不用枚举,我们需要使用 define 来为每个整数定义一个别名: 这个看起来代码量就比较多,接下来我们看看使用枚举的方式: 这样看起来是不是更简洁了。 注 阅读全文
摘要:
作用域 任何一种编程中,作用域是程序中定义的变量所存在的区域,超过该区域变量就不能被访问。C 语言中有三个地方可以声明变量: 1. 在函数或块内部的 局部 变量 2. 在所有函数外部的 全局 变量 3. 在 形式 参数的函数参数定义中 局部变量 在某个函数或块的内部声明的变量称为局部变量。它们只能被 阅读全文
摘要:
判断 C 语言把任何 非零 和 非空 的值假定为 true ,把 零 或 null 假定为 false 。 下面是大多数编程语言中典型的判断结构的一般形式: 判断语句 C 语言提供了以下类型的判断语句。点击链接查看每个类型的细节。 | 语句 | 描述 | | : | : | | "if 语句" | 阅读全文