随笔分类 -  C语言

回顾3年前的C语言。。
摘要:C 可变参数 有时,您可能会碰到这样的情况,您希望函数带有可变数量的参数,而不是预定义数量的参数。C 语言为这种情况提供了一个解决方案,它允许您定义一个函数,能根据具体的需求接受可变数量的参数。下面的实例演示了这种函数的定义。 int func(int, ... ) { . . . } int ma 阅读全文
posted @ 2017-12-14 10:31 Sunsin 阅读(322) 评论(0) 推荐(0) 编辑
摘要:C 递归 递归指的是在函数的定义中使用函数自身的方法。 举个例子:从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?"从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?'从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?… 阅读全文
posted @ 2017-12-14 10:28 Sunsin 阅读(618) 评论(0) 推荐(0) 编辑
摘要:C 错误处理 C 语言不提供对错误处理的直接支持,但是作为一种系统编程语言,它以返回值的形式允许您访问底层数据。在发生错误时,大多数的 C 或 UNIX 函数调用返回 1 或 NULL,同时会设置一个错误代码 errno,该错误代码是全局变量,表示在函数调用期间发生了错误。您可以在 <error.h 阅读全文
posted @ 2017-12-14 10:27 Sunsin 阅读(257) 评论(0) 推荐(0) 编辑
摘要:C 强制类型转换 强制类型转换是把变量从一种类型转换为另一种数据类型。例如,如果您想存储一个 long 类型的值到一个简单的整型中,您需要把 long 类型强制转换为 int 类型。您可以使用强制类型转换运算符来把值显式地从一种类型转换为另一种类型,如下所示: (type_name) express 阅读全文
posted @ 2017-12-14 10:22 Sunsin 阅读(328) 评论(0) 推荐(0) 编辑
摘要:C 头文件 头文件是扩展名为 .h 的文件,包含了 C 函数声明和宏定义,被多个源文件中引用共享。有两种类型的头文件:程序员编写的头文件和编译器自带的头文件。 在程序中要使用头文件,需要使用 C 预处理指令 #include 来引用它。前面我们已经看过 stdio.h 头文件,它是编译器自带的头文件 阅读全文
posted @ 2017-12-14 10:18 Sunsin 阅读(190) 评论(0) 推荐(0) 编辑
摘要:C 预处理器 C 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。我们将把 C 预处理器(C Preprocessor)简写为 CPP。 所有的预处理器命令都是以井号(#)开头。它必须是 阅读全文
posted @ 2017-12-14 10:15 Sunsin 阅读(225) 评论(0) 推荐(0) 编辑
摘要:C 文件读写 上一章我们讲解了 C 语言处理的标准输入和输出设备。本章我们将介绍 C 程序员如何创建、打开、关闭文本文件或二进制文件。 一个文件,无论它是文本文件还是二进制文件,都是代表了一系列的字节。C 语言不仅提供了访问顶层的函数,也提供了底层(OS)调用来处理存储设备上的文件。本章将讲解文件管 阅读全文
posted @ 2017-12-14 10:13 Sunsin 阅读(181) 评论(0) 推荐(0) 编辑
摘要:C 输入 & 输出 当我们提到输入时,这意味着要向程序填充一些数据。输入可以是以文件的形式或从命令行中进行。C 语言提供了一系列内置的函数来读取给定的输入,并根据需要填充到程序中。 当我们提到输出时,这意味着要在屏幕上、打印机上或任意文件中显示一些数据。C 语言提供了一系列内置的函数来输出数据到计算 阅读全文
posted @ 2017-12-14 10:10 Sunsin 阅读(217) 评论(0) 推荐(0) 编辑
摘要:C typedef C 语言提供了 typedef 关键字,您可以使用它来为类型取一个新的名字。下面的实例为单字节数字定义了一个术语 BYTE: 在这个类型定义之后,标识符 BYTE 可作为类型 unsigned char 的缩写,例如: 按照惯例,定义时会大写字母,以便提醒用户类型名称是一个象征性 阅读全文
posted @ 2017-12-14 10:05 Sunsin 阅读(5876) 评论(0) 推荐(0) 编辑
摘要:C 位域 如果程序的结构中包含多个开关量,只有 TRUE/FALSE 变量,如下: 这种结构需要 8 字节的内存空间,但在实际上,在每个变量中,我们只存储 0 或 1。在这种情况下,C 语言提供了一种更好的利用内存空间的方式。如果您在结构内使用这样的变量,您可以定义变量的宽度来告诉编译器,您将只使用 阅读全文
posted @ 2017-12-14 10:04 Sunsin 阅读(509) 评论(0) 推荐(0) 编辑
摘要:C 共用体 共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。共用体提供了一种使用相同的内存位置的有效方式。 定义共用体 为了定义共用体,您必须使用 union 语句,方式与定义结构类似。union 语句定义了一 阅读全文
posted @ 2017-12-14 10:03 Sunsin 阅读(1071) 评论(0) 推荐(0) 编辑
摘要:C 结构体 C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。 结构用于表示一条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性: Title Author Subject Book ID 定义结构 为 阅读全文
posted @ 2017-12-14 10:00 Sunsin 阅读(224) 评论(0) 推荐(0) 编辑
摘要:C 字符串 在 C 语言中,字符串实际上是使用 null 字符 '\0' 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。 下面的声明和初始化创建了一个 "Hello" 字符串。由于在数组的末尾存储了空字符,所以字符数组的大小比单词 "Hello" 的字符数多一个。 阅读全文
posted @ 2017-12-14 09:56 Sunsin 阅读(212) 评论(0) 推荐(0) 编辑
摘要:函数指针 函数指针是指向函数的指针变量。 通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。 函数指针可以像一般函数一样,用于调用函数、传递参数。 函数指针变量的声明: typedef int (*fun_ptr)(int,int); // 声明一个指向同样参数、返回值的 阅读全文
posted @ 2017-12-14 09:55 Sunsin 阅读(3549) 评论(0) 推荐(0) 编辑
摘要:C 指针 学习 C 语言的指针既简单又有趣。通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C 程序员,学习指针是很有必要的。 正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地 阅读全文
posted @ 2017-12-14 09:53 Sunsin 阅读(170) 评论(0) 推荐(0) 编辑
摘要:C 数组 C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。 数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后 阅读全文
posted @ 2017-12-14 09:50 Sunsin 阅读(220) 评论(0) 推荐(0) 编辑
摘要:C 作用域规则 任何一种编程中,作用域是程序中定义的变量所存在的区域,超过该区域变量就不能被访问。C 语言中有三个地方可以声明变量: 在函数或块内部的局部变量 在所有函数外部的全局变量 在形式参数的函数参数定义中 让我们来看看什么是局部变量、全局变量和形式参数。 局部变量 在某个函数或块的内部声明的 阅读全文
posted @ 2017-12-14 09:48 Sunsin 阅读(289) 评论(0) 推荐(0) 编辑
摘要:C 函数 函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。 您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。 函数声明告诉编译器 阅读全文
posted @ 2017-12-14 09:45 Sunsin 阅读(351) 评论(0) 推荐(0) 编辑
摘要:C 循环 有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。 编程语言提供了更为复杂执行路径的多种控制结构。 循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的流程图: 循环类型 C 语言提供了以 阅读全文
posted @ 2017-12-13 17:11 Sunsin 阅读(274) 评论(0) 推荐(0) 编辑
摘要:C 判断 判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。 C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 false。 下面是大多数编程语言中典型的判断结构的一般形式: 判断语句 C 语言提供了以下 阅读全文
posted @ 2017-12-13 17:06 Sunsin 阅读(557) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示