C语言基础目录・C语言基础知识…………………………………………………………………………C语言简介…………………………………………………………………………C语言的特点………………………………………………………………………C语言的发展和标准化……………………………………………………………・数据类型、运算、表达式和编译预处理………………………………………………数据类型……………………………………………………………………………基本类型与数据表示………………………………………………………………整数类型和整数的表示……………………………………………………………实数类型和实数的表示……………………………………………………………字符类型和字符的表示……………………………………………………………运算符、表达式与计算……………………………………………………………算术运算符…………………………………………………………………………算术表达式…………………………………………………………………………表达式的求值………………………………………………………………………变量——概念、定义和使用………………………………………………………变量的定义…………………………………………………………………………0变量的使用:取值与赋值…………………………………………………………预处理………………………………………………………………………………文件包含命令………………………………………………………………………宏定义与宏替换…………………………………………………………………・逻辑判断与运算…………………………………………………………………关系运算和逻辑运算………………………………………………………………复杂条件的描述……………………………………………………………………0if语句………………………………………………………………………………・循环控制………………………………………………………………………………while语句…………………………………………………………………………for语句……………………………………………………………………………循环程序常用的若干机制…………………………………………………………增量和减量运算符(++、--)……………………………………………………逗号运算符…………………………………………………………………………控制结构和控制语句………………………………………………………………do-while循环结构…………………………………………………………………流程控制语句………………………………………………………………………goto语句……………………………………………………………………………C语言基础目录开关语句……………………………………………………………………………・函数……………………………………………………………………………………概述…………………………………………………………………………………函数定义和程序的函数分解………………………………………………………函数定义……………………………………………………………………………函数调用……………………………………………………………………………・数组……………………………………………………………………………………数组的概念、定义和使用…………………………………………………………数组变量定义………………………………………………………………………数组的使用…………………………………………………………………………数组的初始化………………………………………………………………………・结构……………………………………………………………………………………结构(struct)……………………………………………………………………结构说明与变量定义………………………………………………………………结构变量的初始化和使用…………………………………………………………结构与函数…………………………………………………………………………处理结构的函数……………………………………………………………………0・指针……………………………………………………………………………………指针的概念…………………………………………………………………………指针操作……………………………………………………………………………指针作为函数的参数………………………………………………………………与指针有关的一些问题……………………………………………………………指针与数组…………………………………………………………………………指向数组元素的指针………………………………………………………………基于指针运算的数组程序设计……………………………………………………数组参数与指针……………………………………………………………………字符指针与字符数组………………………………………………………………0C语言基础C语言基础知识1.C语言基础知识C语言简介C语言是贝尔实验室DennisRitchie在年设计的一种程序设计语言,其目的是用于写操作系统和系统程序,初期用在PDP-计算机上写UNIX操作系统。0年代后作为UNIX的标准开发语言,C语言随着UNIX系统流行而得到越来越广泛的接受和应用,0年代后它被搬到包括大型机、工作站等的许多系统上,逐渐成为开发系统程序和复杂软件的一种通用语言。随着微机的蓬勃发展、处理能力的提高和应用的日益广泛,越来越多的人参与微机应用系统的开发工作,需要适合开发系统软件和应用软件的语言。C语言能较好满足人们的需要,因此在微机软件开发中得到日益广泛的应用,逐渐成为最常用的系统开发语言之一,被人们用于开发微型机上的各种程序,直至非常复杂的软件系统。在使用最多的以Intel及其兼容芯片为基础的微机上,也有许多性能良好的商品C语言系统可用。包括Borland公司早期的TurboC和后续BorlandC/C++系列产品;Microsoft(微软)公司的MicrosoftC和后续VisualC/C++系列产品。还有其他C/C++语言系统产品,使用较广的有WatcomC/C++和SymanticC/C++等。此外还有许多廉价的和免费的C语言系统。其他微型机也有多种C语言系统。各种工作站系统大都采用UNIX和LINUX,C语言是它们的标准系统开发语言。各种大型计算机上也有自己的C语言系统。C语言的特点C语言之所以能被世界计算机界广泛接受是由于其自身的特点。总体上说,因其设计把直到0年代人们对于程序语言的认识和开发复杂系统程序(例如操作系统等)的需要成功地结合起来。C语言的主要特点包括:C语言比较简单,是一个比较小的语言。学习时入门相对容易,知道很少东西就可以开始编程。C语言很好地总结了其他语言提出的程序库概念,把程序设计中需要的许多功能放在程序库(称为标准函数库)里实现,如输入输出功能等。这就使语言本身比较简单,编译程序的实现比较容易。人们早已用C语言写了它自己的编译程序,这种程序很容易移植到各种不同计算机上,促进了C语言的传播。C语言提供了丰富的程序机制,包括各种控制机制和数据定义机制,能满足构造复杂程序时的各种需要。方便易用的函数定义和使用机制使人可以把复杂程序分解成一个个具有一定独立性的函数,以分解程序的复杂性,使之更容易控制和把握。C语言提供了一套预处理命令,支持程序或软件系统的分块开发。利用这些机制,一个软件系统可以较方便地先由几个人或几个小组分别开发,然后再集成,构成最终系统。这种工作方式对于开发大软件系统是必需的。人们用C语言开发了许多规模很大的系统。C语言的另一特点是可以写出效率很高的程序。人们之所以在一些地方继续用汇编语言,就是因为高级语言写出的程序效率低一些。这样,开发效率要求特别高的程序时就只能使用汇编语言。C语言的基本设计使得用它开发的程序具有较高的效率,它还提供了一组比较接近硬件的低级操作,可用于写较低级、需要直接与硬件打交道的程序或程序部分。这些使C语言常被用作汇编语言的“替代物”,大大提高了开发低层程序的效率。C语言的工作得到世界计算机界的广泛赞许。一方面,C语言在程序语言研究领域具有一定价值,它引出了不少后继语言,还有许多新语言从C语言中汲取营养,吸收了它的不少东西。另一方面,C语言对计算机工业和应用的发展也起了很重要的推动作用。正是由于这些情况,C语言的设计者获得世界计算机科学技术界的最高奖——图灵奖。C语言的发展和标准化在设计C语言时,设计者主要把它作为汇编语言的替代品,作为自己写操作系统的工具,因此更多强调的是灵活性和方便性。语言的规定很不严格,可以用许多不规矩的方式写程序,因此也留下了许多不安全因素。使用这样的语言,就要求编程序者自己注意可能的问题,程序的正确性主要靠人来保证,语言的处理C语言基础系统(编译程序)不能提供多少帮助。随着应用范围的扩大,使用C语言的人越来越多(显然其中大部分人对语言的理解远不如设计者),C语言在这方面的缺点日益突出起来。由此造成的后果是,人们用C语言开发的复杂程序里常带有隐藏很深的错误,难以发现和改正。随着应用发展,人们更强烈地希望C语言能成为一种更安全可靠、不依赖于具体计算机和操作系统(如UNIX)的标准程序设计语言。美国国家标准局(ANSI)在0年代建立了专门小组研究C语言标准化问题,这个工作的结果是年颁布的ANSIC标准。这个标准被国际标准化组织和各国标准化机构接受,同样也被采纳为中国国家标准。此后人们继续工作,年通过了ISO/IEC:标准(一般称为C)。这一新标准对ANSIC做了一些小修订和扩充。语言改造非常困难。虽然人们已认识到原来C语言中的一些东西不好,最终应该丢掉。但已有的东西,主要是新标准出现前人们已开发的各种程序和软件,是一笔巨大财富,不能轻易丢掉,彻底改造要耗费极大人力和物力,也不可能做到。另外,一批老用户已养成习惯,不可能在一朝一夕改变。因此,即使想建立一个新标准,也要尽可能保持与原形式的兼容性,ANSIC标准基本上容许原形式的C程序,作为对现实的让步。但新标准中强调:旧事物终将被抛弃,希望写程序的人尽量不要再使用它们。今天学习C语言和程序设计,理所当然应该采用新的形式,不应该学习那些过时的东西。原因主要有两条:这些旧东西终归将被抛弃,养成使用它们的习惯将来还要改,那时将更加费时费力,也毫无意义;这些过时的东西确实不好,虽然有时用它们能少写几个字符,但往往会阻碍编译系统对程序的检查。人很容易犯错误,在从事写程序这种复杂工作时尤其如此。阻止编译检查就是拒绝计算机帮助,其实际后果无法预料,可能代价惨重,后来要为程序中实际存在的隐藏错误耗费更多的时间和精力。C语言基础知识C语言基础2.数据类型、运算、表达式和编译预处理数据类型数据是程序处理的对象。C语言把程序能处理的基本数据对象分成一些集合。属于同一集合的数据对象具有同样性质:采用统一的书写形式,在具体实现中采用同样的编码方式(按同样规则对应到内部二进制编码,采用同样二进制编码位数),对它们能做同样操作等等。语言中具有这样性质的一个数据集合称为一个类型。从关于计算机基础知识可知,计算机硬件处理的数据也分成一些类型,通常包括字符、整数、浮点数等,CPU为不同数据类型提供了不同的操作指令。例如,对整数有一套加减乘除指令,对浮点数有另一套加减乘除指令等。程序语言中把数据分成类型与此有密切关系。但类型的意义不仅于此,实际上,类型是计算机科学的核心概念之一。在学习程序设计和程序设计语言的过程中将不断与类型打交道。C语言的基本类型包括字符类型、整数类型、实数类型等。请特别注意:()程序中书写的、执行中处理的每个基本数据都属于某个确定的基本数据类型;