C语言教程

C 运算符

C 运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 语言内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 本章将逐一介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和其他运算符。 算术运算符 下表显示了 C 语言支持的所有算术运算符。假设变量 A 的值为 10,变量 B 的值为 20,则: 运算符 描... »

Usual Arithmetic Conversion

C 强制类型转换

C 强制类型转换 强制类型转换是把变量从一种类型转换为另一种数据类型。例如,如果您想存储一个 long 类型的值到一个简单的整型中,您需要把 long 类型强制转换为 int 类型。您可以使用强制类型转换运算符来把值显式地从一种类型转换为另一种类型,如下所示: (type_name) expression 请看下面的实例,使用强制类型转换运算符把一个整数变量除以另一个整数变量,得到一个浮点数: 实... »

C 标准库 – math.h

C 标准库 – 简介 math.h 头文件定义了各种数学函数和一个宏。在这个库中所有可用的功能都带有一个 double 类型的参数,且都返回 double 类型的结果。 库宏 下面是这个库中定义的唯一的一个宏: 序号 宏 & 描述 1 HUGE_VAL 当函数的结果不可以表示为浮点数时。如果是因为结果的幅度太大以致于无法表示,则函数会设置 errno 为 ERANGE 来表示范... »

C 判断

C 判断

C 判断 判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。 C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 false。 下面是大多数编程语言中典型的判断结构的一般形式: 判断语句 C 语言提供了以下类型的判断语句。点击链接查看每个语句的细节。 语句 描述 if 语句 一个 if 语句 由一个布尔表... »

C 错误处理

C 错误处理 C 语言不提供对错误处理的直接支持,但是作为一种系统编程语言,它以返回值的形式允许您访问底层数据。在发生错误时,大多数的 C 或 UNIX 函数调用返回 1 或 NULL,同时会设置一个错误代码 errno,该错误代码是全局变量,表示在函数调用期间发生了错误。您可以在 errno.h 头文件中找到各种各样的错误代码。 所以,C 程序员可以通过检查返回值,然后根据返回值决定采取哪种适当... »

C 标准库 – setjmp.h

C 标准库 – 简介 setjmp.h 头文件定义了宏 setjmp()、函数 longjmp() 和变量类型 jmp_buf,该变量类型会绕过正常的函数调用和返回规则。 库变量 下面列出了头文件 setjmp.h 中定义的变量: 序号 变量 & 描述 1 jmp_buf 这是一个用于存储宏 setjmp() 和函数 longjmp() 相关信息的数组类型。 库宏 下面是这个库... »

循环结构

C 循环

C 循环 有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。 编程语言提供了更为复杂执行路径的多种控制结构。 循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的流程图: 循环类型 C 语言提供了以下几种循环类型。点击链接查看每个类型的细节。 循环类型 描述 while 循环 当给定条件为真时,重复... »

C 递归

C 递归

C 递归 递归指的是在函数的定义中使用函数自身的方法。 举个例子: 从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?”从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?’从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?……'” 语法格式如下: void recursion() { ... »

C 标准库 – signal.h

C 标准库 - 简介signal.h 头文件定义了一个变量类型 sig_atomic_t、两个函数调用和一些宏来处理程序执行期间报告的不同信号。库宏下面是头文件 signal.h 中定义的宏,这些宏将在下列两个函数中使用。SIG_ 宏与 signal 函数一起使用来定义信号的功能。SIG 宏用于表示以下各种条件的信号码:序号宏 & 描述1 SIGABRT程序异常终止。3 SIGILL非法函... »

C 函数

C 函数 函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。 您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。 函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。 C 标准库提供了大量的程序可以调用的内置... »

C 可变参数

C 可变参数 有时,您可能会碰到这样的情况,您希望函数带有可变数量的参数,而不是预定义数量的参数。C 语言为这种情况提供了一个解决方案,它允许您定义一个函数,能根据具体的需求接受可变数量的参数。下面的实例演示了这种函数的定义。 int func(int, ... ) { . . . } int main() { func(2, 2, 3); func(3, 2, 3, 4); } 请注意,函数 f... »

C 标准库 – stdarg.h

C 标准库 - 简介stdarg.h 头文件定义了一个变量类型 va_list 和三个宏,这三个宏可用于在参数个数未知时获取函数中的参数。库宏下面是头文件 stdarg.h 中定义的宏:序号宏 & 描述1void va_start这个宏初始化 ap 变量,它与 va_arg 和 va_end 宏是一起使用的。last_arg 是最后一个传递给函数的已知的固定参数,即省略号之前的参数。如果在... »

C 作用域规则

C 作用域规则 任何一种编程中,作用域是程序中定义的变量所存在的区域,超过该区域变量就不能被访问。C 语言中有三个地方可以声明变量: 在函数或块内部的局部变量 在所有函数外部的全局变量 在形式参数的函数参数定义中 让我们来看看什么是局部变量、全局变量和形式参数。 局部变量 在某个函数或块的内部声明的变量称为局部变量。它们只能被该函数或该代码块内部的语句使用。局部变量在函数外部是不可知的。下面是使用... »

C 内存管理

C 内存管理 本章将讲解 C 中的动态内存管理。C 语言为内存的分配和管理提供了几个函数。这些函数可以在 头文件中找到。 序号 函数和描述 1 void *calloc(int num, int size); 在内存中动态地分配 num 个长度为 size 的连续空间,并将每一个字节都初始化为 0。所以它的结果是分配了 num*size 个字节长度的内存空间,并且每个字节的值都是0。 2 void... »

C 标准库 – stddef.h

C 标准库 – 简介 stddef .h 头文件定义了各种变量类型和宏。这些定义中的大部分也出现在其它头文件中。 库变量 下面是头文件 stddef.h 中定义的变量类型: 序号 变量 & 描述 1 ptrdiff_t 这是有符号整数类型,它是两个指针相减的结果。 2 size_t 这是无符号整数类型,它是 sizeof 关键字的结果。 3 wchar_t 这是一个宽字符常量大... »

数组表示

C 数组

C 数组 C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。 数组的声明并不是声明一个个单独的变量,比如 number0、number1、…、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、…、numbers[99] 来... »

C 命令行参数

C 命令行参数 执行程序时,可以从命令行传值给 C 程序。这些值被称为命令行参数,它们对程序很重要,特别是当您想从外部控制程序,而不是在代码内对这些值进行硬编码时,就显得尤为重要了。 命令行参数是使用 main() 函数参数来处理的,其中,argc 是指传入参数的个数,argv[] 是一个指针数组,指向传递给程序的每个参数。下面是一个简单的实例,检查命令行是否有提供参数,并根据参数执行相应的动作:... »

C 标准库 – stdio.h

C 标准库 - 简介stdio .h 头文件定义了三个变量类型、一些宏和各种函数来执行输入和输出。库宏下面是头文件 stdio.h 中定义的宏:序号宏 & 描述1NULL这个宏是一个空指针常量的值。10stderr、stdin 和 stdout 这些宏是指向 FILE 类型的指针,分别对应于标准错误、标准输入和标准输出流。参数 pos 是由函数 fgetpos 给定的位置。22int p... »

C 指针

C 指针 学习 C 语言的指针既简单又有趣。通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C 程序员,学习指针是很有必要的。 正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。请看下面的实例,它将输出定义的变量地址: 实例 #inclu... »

C 排序算法

C 排序算法

C 排序算法 冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。 过程演示: 实例 #include void bubble_sort(int arr[], int len) { int i, j, temp; for (i = 0; i < len - 1;... »

C 标准库 – stdlib.h

C 标准库 - 简介stdlib .h 头文件定义了四个变量类型、一些宏和各种通用工具函数。3div_t 这是 div 函数返回的结构。库宏下面是头文件 stdlib.h 中定义的宏:序号宏 & 描述1NULL这个宏是一个空指针常量的值。库函数下面是头文件 stdlib.h 中定义的函数:序号函数 & 描述1double atof把参数 str 所指向的字符串转换为一个浮点数。5... »

c-mini-logo

C 语言教程

C 语言教程 C 语言是一种通用的、面向过程式的计算机程序设计语言。1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。 C 语言是一种广泛使用的计算机语言,它与 Java 编程语言一样普及,二者在现代软件程序员之间都得到广泛使用。 当前最新的C语言标准为 C11 ,在它之前的C语言标准为 C99。   谁适合阅读本教程? 本教程是专门为需... »

C/C++ 中的字符串表示

C 字符串

C 字符串 在 C 语言中,字符串实际上是使用 null 字符 ” 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。 下面的声明和初始化创建了一个 “Hello” 字符串。由于在数组的末尾存储了空字符,所以字符数组的大小比单词 “Hello” 的字符数多一个。 char greeting[6] = {'H... »

C 语言实例

C 语言实例 1、C 语言实例 – 输出 “Hello, World!” 2、 C 语言实例 – 输出整数 3、 C 语言实例 – 输出单个字符 4、 C 语言实例 – 输出浮点数 5、 C 语言实例 – 输出双精度数 6、 C 语言实例 – 两个数字相加 7、 C 语言实例 – 两个浮点数... »

C 标准库 – string.h

C 标准库 - 简介string .h 头文件定义了一个变量类型、一个宏和各种操作字符数组的函数。库宏下面是头文件 string.h 中定义的宏:序号宏 & 描述1NULL这个宏是一个空指针常量的值。9int strcmp把 str1 所指向的字符串和 str2 所指向的字符串进行比较。也就是说,依次检验字符串 str1 中的字符,当被检验字符在字符串 str2 中也包含时,则停止检验,并... »

Page 1 of 212