C语言教程目录

C 简介 C 环境设置 C 程序结构 C 基本语法 C 数据类型 C 变量 C 常量 C 存储类 C 运算符 C 判断 C 循环 C 函数 C 作用域规则 C 数组 C 指针 C 字符串 C 结构体 C 共用体 C 位域 C typedef C 文件读写 C 预处理器 C 头文件 C 强制类型转换 C 错误处理 C 递归 C 可变参数 C 内存管理 C 命令行参数

  • 0
  • 0
  • admin
  • 发布于 2019-08-06 19:56
  • 阅读 ( 408 )

C 基本语法

C 基本语法 我们已经看过 C 程序的基本结构,这将有助于我们理解 C 语言的其他基本的构建块。 C 的令牌(Tokens)C 程序由各种令牌组成,令牌可以是关键字、标识符、常量、字符串值,或者是一个符号。例如,下面的 C 语句包括五个令牌:这五个令牌分别是:分号 ;在 C 程序中,分号是语句结束符。也就是说,每个语句必须以分号结束。它表明一个逻辑实体的结束。例如,下面是两个不同的语句:注释注释就...

  • 0
  • 0
  • 轩爸
  • 发布于 2019-08-03 16:32
  • 阅读 ( 216 )

C 环境设置

C 环境设置本地环境设置如果您想要设置 C 语言环境,您需要确保电脑上有以下两款可用的软件,文本编辑器和 C 编译器。文本编辑器这将用于输入您的程序。文本编辑器包括 Windows Notepad、OS Edit command、Brief、Epsilon、EMACS 和 vim/vi。文本编辑器的名称和版本在不同的操作系统上可能会有所不同。例如,Notepad 通常用于 Windows 操作系统...

  • 0
  • 0
  • 轩爸
  • 发布于 2019-08-03 16:32
  • 阅读 ( 195 )

C 函数

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

  • 0
  • 0
  • 轩爸
  • 发布于 2019-08-03 16:32
  • 阅读 ( 221 )

C 判断

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

  • 0
  • 0
  • 轩爸
  • 发布于 2019-08-03 16:32
  • 阅读 ( 223 )

C 存储类

C 存储类 存储类定义 C 程序中变量/函数的范围(可见性)和生命周期。这些说明符放置在它们所修饰的类型之前。下面列出 C 程序中可用的存储类: auto register static extern auto 存储类auto 存储类是所有局部变量默认的存储类。上面的实例定义了两个带有相同存储类的变量,auto 只能用在函数内,即 auto 只能修饰局部变量。register 存储类regis...

  • 0
  • 0
  • 轩爸
  • 发布于 2019-08-03 16:32
  • 阅读 ( 156 )

C 变量

C 变量 变量其实只不过是程序可操作的存储区的名称。C 中每个变量都有特定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。 变量的名称可以由字母、数字和下划线字符组成。它必须以字母或下划线开头。大写字母和小写字母是不同的,因为 C 是大小写敏感的。基于前一章讲解的基本类型,有以下几种基本的变量类型: 类型描述 char通常是一个八位字节(一个字节)。...

  • 0
  • 0
  • 轩爸
  • 发布于 2019-08-03 16:32
  • 阅读 ( 166 )

C 字符串

C 字符串在 C 语言中,字符串实际上是使用 null 字符 '' 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。下面的声明和初始化创建了一个 "Hello" 字符串。由于在数组的末尾存储了空字符,所以字符数组的大小比单词 "Hello" 的字符数多一个。依据数组初始化规则,您可以把上面的语句写成以下语句:以下是 C/C++ 中定义的字符串的内存表示:其实,您不...

  • 0
  • 0
  • 轩爸
  • 发布于 2019-08-03 16:32
  • 阅读 ( 164 )

C 数组

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

  • 0
  • 0
  • 轩爸
  • 发布于 2019-08-03 16:32
  • 阅读 ( 166 )

C typedef

C typedefC 语言提供了 typedef 关键字,您可以使用它来为类型取一个新的名字。下面的实例为单字节数字定义了一个术语 BYTE:在这个类型定义之后,标识符 BYTE 可作为类型 unsigned char 的缩写,例如: 按照惯例,定义时会大写字母,以便提醒用户类型名称是一个象征性的缩写,但您也可以使用小写字母,如下:您也可以使用 typedef 来为用户自定义的数据类型取一个新的名...

  • 0
  • 0
  • 轩爸
  • 发布于 2019-08-03 16:32
  • 阅读 ( 218 )

C 共用体

C 共用体 共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。共用体提供了一种使用相同的内存位置的有效方式。 定义共用体为了定义共用体,您必须使用 union 语句,方式与定义结构类似。union 语句定义了一个新的数据类型,带有多个成员。union 语句的格式如下:union tag 是可选的,每个 memb...

  • 0
  • 0
  • 轩爸
  • 发布于 2019-08-03 16:32
  • 阅读 ( 164 )

C 命令行参数

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

  • 0
  • 0
  • 轩爸
  • 发布于 2019-08-03 16:32
  • 阅读 ( 137 )

C 内存管理

C 内存管理 本章将讲解 C 中的动态内存管理。C 语言为内存的分配和管理提供了几个函数。这些函数可以在 <stdlib.h> 头文件中找到。 序号函数和描述 1void *calloc(int num, int size);该函数分配一个带有 function allocates an array of num 个元素的数组,每个元素的大小为 size 字节。 2void free...

  • 0
  • 0
  • 轩爸
  • 发布于 2019-08-03 16:32
  • 阅读 ( 203 )

C 递归

C 递归 递归是以自相似的方式重复项目的处理过程。同样地,在编程语言中,在函数内部调用函数自身,称为递归调用。如下: C 语言支持递归,即,一个函数可以调用自身。但在使用递归时,程序员需要注意定义一个从函数退出的条件,否则会进入无限循环。 递归函数在解决许多数学问题上起了至关重要的作用,比如计算一个数的阶乘、生成斐波那契数列,等等。 数的阶乘下面的实例使用递归函数计算一个给定的数的阶乘:当上面的...

  • 0
  • 0
  • 轩爸
  • 发布于 2019-08-03 16:32
  • 阅读 ( 161 )

C 强制类型转换

C 强制类型转换强制类型转换是把变量从一种类型转换为另一种数据类型。例如,如果您想存储一个 long 类型的值到一个简单的整型中,您需要把 long 类型强制转换为 int 类型。您可以使用强制类型转换运算符来把值显式地从一种类型转换为另一种类型,如下所示:请看下面的实例,使用强制类型转换运算符把一个整数变量除以另一个整数变量,得到一个浮点数:当上面的代码被编译和执行时,它会产生下列结果:这里要注...

  • 0
  • 0
  • 轩爸
  • 发布于 2019-08-03 16:32
  • 阅读 ( 153 )

C 预处理器

C 预处理器 C 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。我们将把 C 预处理器(C Preprocessor)简写为 CPP。 所有的预处理器命令都是以井号(#)开头。它必须是第一个非空字符,为了增强可读性,预处理器指令应从第一列开始。下面列出了所有重要的预处理器指令: 指...

  • 0
  • 0
  • 轩爸
  • 发布于 2019-08-03 16:32
  • 阅读 ( 142 )

C 可变参数

C 可变参数有时,您可能会碰到这样的情况,您希望函数带有可变数量的参数,而不是预定义数量的参数。C 语言为这种情况提供了一个解决方案,它允许您定义一个函数,能根据具体的需求接受可变数量的参数。下面的实例演示了这种函数的定义。请注意,函数 func() 最后一个参数写成省略号,即三个点号(...),省略号之前的那个参数总是 int,代表了要传递的可变参数的总数。为了使用这个功能,您需要使用 stda...

  • 0
  • 0
  • 轩爸
  • 发布于 2019-08-03 16:32
  • 阅读 ( 220 )

C 错误处理

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

  • 0
  • 0
  • 轩爸
  • 发布于 2019-08-03 16:32
  • 阅读 ( 189 )

C 头文件

C 头文件 头文件是扩展名为 .h 的文件,包含了 C 函数声明和宏定义,被多个源文件中引用共享。有两种类型的头文件:程序员编写的头文件和编译器自带的头文件。 在程序中要使用头文件,需要使用 C 预处理指令 #include 来引用它。前面我们已经看过 stdio.h 头文件,它是编译器自带的头文件。 引用头文件相当于复制头文件的内容,但是我们不会直接在源文件中复制头文件的内容,因为这么做很容易出...

  • 0
  • 0
  • 轩爸
  • 发布于 2019-08-03 16:32
  • 阅读 ( 147 )

C 文件读写

C 文件读写 本章我们将介绍 C 程序员如何创建、打开、关闭文本文件或二进制文件。 一个文件,无论它是文本文件还是二进制文件,都是代表了一系列的字节。C 语言不仅提供了访问顶层的函数,也提供了底层(OS)调用来处理存储设备上的文件。本章将讲解文件管理的重要调用。 打开文件您可以使用 fopen( ) 函数来创建一个新的文件或者打开一个已有的文件,这个调用会初始化类型 FILE 的一个对象,类型 F...

  • 0
  • 0
  • 轩爸
  • 发布于 2019-08-03 16:32
  • 阅读 ( 224 )