




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言概述 C C语语言是一言是一种结构种结构化化语语言,言,它层它层次次清清晰,便于按模晰,便于按模块块化方式化方式组织组织程序,易于程序,易于调试调试和和维护维护。同。同时时,它还它还是一是一种种面向底面向底层层的的编编程程语语言,可以直接言,可以直接访问内访问内存的物理地址。要存的物理地址。要写写好一好一个个C C程序,必程序,必须须要要清清楚操作系楚操作系统统的工作原理,原因就在于操作系的工作原理,原因就在于操作系统统也也是用是用C C语语言言编写编写的。由于的。由于LinuxLinux系系统统是一是一种开种开源的操作系源的操作系统统,就更可以通,就更可以通过学习该过学习该系系统统的的
2、内内核原理,核原理,来来加深加深对对C C语语言的理解言的理解,从从而能而能够够在此系在此系统统中更好的使用中更好的使用C C语语言言编编程。程。 C C语语言是一言是一种种通用的程序通用的程序设计语设计语言,广泛的言,广泛的应应用于系用于系统与应统与应用用软软件的件的开发开发,具有如下特点:,具有如下特点:高效性高效性 一个一个C C语言源代码编译的过程是:首先,经由预处理器,处理源代码中的预处理部分,将代码补充完整;然后,将补充语言源代码编译的过程是:首先,经由预处理器,处理源代码中的预处理部分,将代码补充完整;然后,将补充完整的代码送到编译器,将其翻译成汇编语言;最后,生成二进制的目标代
3、码。所谓的高效性,是指完整的代码送到编译器,将其翻译成汇编语言;最后,生成二进制的目标代码。所谓的高效性,是指C C语言生成目标代码语言生成目标代码的质量高,程序执行效率高,并且具有友好的可读性和编写性。一般情况下,的质量高,程序执行效率高,并且具有友好的可读性和编写性。一般情况下,C C语言生成的目标代码只比汇编程序低语言生成的目标代码只比汇编程序低10%20%10%20%。 灵活性灵活性 C C语语言一共有言一共有3232个关键个关键字,字,9 9种种控制控制语语句,其句,其书写书写形式自由,形式自由,语语法不拘一格,可在原有法不拘一格,可在原有语语法基法基础础上上进进行再行再创创造、造、
4、复复合,合,从从而而给给程序程序员员更多的想象和更多的想象和发挥发挥的空的空间间,以此可以充分展,以此可以充分展现现出出C C语语言的言的灵灵活性。活性。 功能丰富功能丰富 C C语语言中不言中不仅仅具有多具有多种数种数据据类类型,型,还还可以使用丰富的可以使用丰富的运运算符和自定算符和自定义义的的结构类结构类型,用型,用它们来它们来表表达达多多种复杂种复杂的的数数据据结构结构,完成所需要的丰富的功能。完成所需要的丰富的功能。 表达力强表达力强 此特点主要体现在,此特点主要体现在,C C语言的语法形式与人们所使用的语言形式相似,书写形式自由,结构规范,并且只需简单的控制语言的语法形式与人们所使
5、用的语言形式相似,书写形式自由,结构规范,并且只需简单的控制语句就可以轻松控制程序流程,满足繁琐的程序要求。语句就可以轻松控制程序流程,满足繁琐的程序要求。 移植性好移植性好 由于由于C C语言具有良好的移植性,从而使得语言具有良好的移植性,从而使得C C程序可以运行在不同的操作系统下,只需简单的修改一下即可,使用程序可以运行在不同的操作系统下,只需简单的修改一下即可,使用C C语言可语言可以进行跨平台的程序开发操作。以进行跨平台的程序开发操作。数据类型本讲大纲:基本基本类类型型构构造造类类型型指指针类针类型型空空类类型型运算符和表达式本讲大纲:运运算符算符表表达达式式运算符通过上面的章节,了
6、解到在C语言中的数据类型的种类和各自的作用,在掌握了数据的数据类型后,还要掌握对这些数据进行的各种操作,如几个数据之间的加、减、乘、除等基本的算术运算操作。那些对数据进行数值操作的操作符就称之为运算符。而操作符和操作的数据就组成了表达式。2.3.1 运算符C语言的运算符可以分为算术运算符、关系运算符、逻辑运算符和位操作运算符等。下面简单介绍一下这几种运算符。算术运算符算术运算符主要用于完成基本的数值运算,如加(+)、减(-)、乘(*)、除(/)四则运算,算术运算符还包括取模运算符(%)、自增(+)和自减(-)运算法以及赋值运算符(=)。例2.1 在Linux系统中,使用vim编辑器编写如下代码
7、,掌握加、减、乘、除等算术运算符的基本应用。(实例位置:光盘TMsl21)#includeint main(void)int a=2,b=3,c=6;printf(%d+%d=%dn,a,b,a+b);printf(%d-%d=%dn,c,b,+c-b);/*先将c自加*/printf(%d*%d=%dn,a,b,a*b);printf(%d % %d=%dn,b,a,b%a);printf(a=%dn,a+);/*输出a的值,然后自加1*/printf(a=%dn,a);/*输出此时a的值*/此例在vim编辑器中的编辑效果如图2.1所示。 图2.1 在vim编辑器中的显示效果图本示例实现了输
8、出使用部分算术运算符构成的表达式的值。其在Linux系统中的运行效果如图2.1所示。 图2.1 算术运算符的演示结果关系运算符所谓的关系运算符,是用于比较两个数据间的关系,如大于、小于和等于。在C语言中关系运算符包括大于()、小于表达式表达式是由运算符和用于运算的数据组成,例如:4+6i-5a+(b*c+7)/2在程序中,表达式本身不起任何作用,只是用于返回表达式的结果,当表达式的结果在程序中没有用时,可以忽略表达式的结果。每一个表达式返回的结果值都是有数据类型的,表达式隐含的数据类型取决于组成表达式的变量和常量的数据类型。基本类型数据类型基本类型构造类型指针类型空类型整型字符型实型(浮点型)
9、枚举类型单精度型双精度型数组类型结构体类型共用体类型 著名的计算机科学家沃思曾提出一个公式:程序著名的计算机科学家沃思曾提出一个公式:程序= =算法算法+ +数据结构,而在数据结构,而在C C语言中,数据结语言中,数据结构是以数据类型的形式出现的,构是以数据类型的形式出现的,C C语言的数据类型可以分为基本类型、构造类型、指针类型和语言的数据类型可以分为基本类型、构造类型、指针类型和空类型。算法操作的对象是数据,这些数据就是以数据类型的形式存在,数据有常量和变量之空类型。算法操作的对象是数据,这些数据就是以数据类型的形式存在,数据有常量和变量之分,无论常量还是变量都是由这些数据类型作为修饰。如
10、图分,无论常量还是变量都是由这些数据类型作为修饰。如图2.12.1所示为数据类型的分类。所示为数据类型的分类。基本类型2.2.1 基本类型基本类型是指其值不可以再分解为其它类型。基本类型包括整型、字符型、实型(浮点型)和枚举类型。以下分别介绍这几种基本类型。整型数据整型数据,顾名思义,就是没有小数位或指数的数据类型。通过对整型数据的使用方法,可以分为整型常量和整型变量。整型常量是在运算中数据类型为整型、不可改变数值的数据。可以应用八进制、十进制、十六进制描述一个整型常量。下面分别介绍一下八进制、十进制和十六进制对整型常量的描述。所谓的八进制整常数是必须以0开头,0作为八进制整常数的前缀,其数码
11、取值范围为07。八进制数通常没有负数。例如八进制数可以写成如下形式:015,表示成十进制数为13。所谓的十进制数,就是我们在生活中经常用到的常数,没有固定的前缀,数码取值范围为09,有正数也有负数,例如可以写成如下形式:94,-160。所谓十六进制的常数也存在前缀,为0 x或0X,数码的取值范围为从09表示正常的十个数字,而af或(AF)表示从十到十五。例如十六进制正常数可以表示成如下形式:0 xa1,表示成十进制数是161。整型变量可以分为基本整型、短整型、长整型。如下所示为对这几种整型变量的描述。基本整形的类型说明符为int,在内存中占有两个字节。短整型的类型说明符为short int,此
12、时的int可以省略,以short表示短整型,在内存中也占有两个字节。长整型的类型说明符为long int,同样可以省略int,以long来表示长整型,在内存中占有4个字节。以上这三种整型数据,又包括有符号和无符号两类,有符号的整型在类型说明符前可以加上signed,无符号的整型在类型说明符前可以加上unsigned,若一个类型说明符前没有signed与unsigned作为修饰,则默认为是signed,有符号的。实型数据实型数据又可以称之为浮点型数据,实型常量有以下两种表示形式:1十进制小数形式十进制小数形式是由数字和小数点组成的,可以写成如下形式:12.9。2指数形式指数形式以e或者E为标志,
13、一个实数可以有多种指数形式,但是在字母e(或E)之前的小数部分中,小数点左边应至少有一位非零的数字,而字母e(或E)的后面必须是整数形式。例如指数形式的实数可以写成如下形式:314.0697e2。实型变量可以分为单精度型(float)、双精度型(double)和长双精度型(long double)三种,其中单精度型数据占有四个字节,双精度型数据占有八个字节,长双精度型数据占有十六个字节。字符型数据构造类型一个构造类型可以分解成若干个“成员”和“元素”。每个“成员”都是一个基本数据类型或者又是一个构造类型。构造类型可以有以下三种:数组类型数组类型是由若干个相同的数据类型的元素组成的,例如:int
14、 array100;char a20;数组前面的数据类型表示数组元素的类型,array和a是数组变量的名称,中括号()里面的数字是数组的长度。其中数组的长度不可以是动态的,即数组的大小不在程序的运行过程中改变。结构体类型结构体类型是将不同类型的数据组合成一个有机的整体,以便于引用。这些组合在一个整体中的数据是存在着某种联系的。结构体类型以关键字struct开头,如下所示为定义了一个学生信息的结构体类型:struct studentint age;int number;char name20;double Chinese;double English;使用定义的结构体类型声明一个结构体类型的变量
15、,如:struct student stu1,stu2;为结构体类型的变量赋初值,如:stu1=21,101,”Lily”,98.5,99;指针类型在计算机中所有的数据都是存放在内存中,为了能够正确的访问到这些内存单元,在C语言中为每个内存单元编上号,通过这些唯一的编号,就可以找到所需的内存单元,那么这个内存单元的编号就称之为这个内存单元的地址,这个地址就是所谓的指针。在C语言中,指针类型是最重要的数据类型,也是C语言最主要的风格之一。利用指针变量可以访问各种数据结构,可以很方便地使用数组和字符串;并能象汇编语言一样处理内存地址,从而编出精炼而高效的程序。指针变量是包含内存地址的变量。通常的变
16、量是包含一个值,而指针变量包含的是某一数据类型的内存地址。U注意:指针变量在使用之前需要声明和初始化。(1)定义指针变量声明一个指针变量的形式为:数据类型 *变量名;声明中的“*”运算符表明被声明的变量是指针变量。例如:int *pint;/声明一个整型指针变量double *pd;/声明一个长精度型指针变量char *pch;/声明一个字符型指针变量声明的上述三个指针,都只能指向某一特定的数据类型的变量或数组元素。如整型指针变量只能指向一个整型的变量或整型变量的数组元素。只有在声明完指针变量后,才可以为该变量赋初值。如:int i=8;double d=19.6;char c=a;pint=
17、&i;pd=&d;pch=&c;上述赋值代码中,“&”运算符称之为取地址运算符,用于获取变量所在的内存地址。空类型所谓的空类型就是指没有数据类型,空类型的关键字是void。一般情况下,不会有程序员定义一个空类型的数据。这个数据类型起到的作用主要就是:对函数返回值的限定对函数参数的限定通常一个函数都具有一个返回值,将值返回调用者。这个返回值一般情况下是具有特定的数据类型的,如整型int,字符型char等等。但是也有的函数不需要返回任何值,这时就应用空类型void来设定函数的返回值类型。函数函数是C语言的基本单元。每一个函数都有其特定的功能,函数是由程序的可执行代码
18、构成的。如下所示为函数的定义形式:函数返回值类型 函数名(参数列表)函数体(函数实现特定功能的可执行代码);例如,定义一个实现求解斐波那契数列的功能函数。int Fib(int n)if(n1)return -1;if(n=1|n=2)return 1;return Fib(n-1)+Fib(n-2);上述代码,在函数体部分通过递归算法实现了计算斐波那契数列的功能。例2.4 在Linux系统下实现求解斐波那契数列,并输出数列中任意第几个数据的值,如,输入3,会显示数列中第三个数的数值2。(实例位置:光盘TMsl24)#includeint Fib(int n)if(n1)return -1;i
19、f(n=1|n=2)return 1;return Fib(n-1)+Fib(n-2);流程控制本讲大纲:控制控制语语句句函函数调数调用用语语句句表表达达式式语语句句空空语语句句复复合合语语句句控制语句程序语句是用来向计算机系统发出操作指令的,由于C语言具有灵活性,并且表达力强的特点,通常在编译的时候,一个C程序语句可以被翻译成若干条机器指令。在C语言中,程序语句包括控制语句、函数调用语句、表达式语句、空语句和复合语句。下面分别对这几种程序语句进行介绍。2.5.1 控制语句控制语句是指具有一定控制功能的程序语句。如条件控制语句、循环控制语句和选择控制语句等。在C语言中总共有九种控制语句,分别如
20、下:(1)条件控制语句if(表达式)语句;else语句;(2)for循环控制语句for(循环变量初值;循环条件;修改循环变量)语句;(3)while循环控制语句while(循环控制条件)语句;(4)do-while循环控制语句do语句;while(循环条件)(5)switch多分支选择语句函数调用语句所谓的函数调用语句是指在程序中调用已经定义好的函数加一个分号构成的语句。如:scanf(“%d”,&i);/格式输入语句putchar(ch);/向终端输出一个字符ch表达式语句表达式语句是由一个表达式所构成的语句。在2.3节的运算符与表达式中已经简单介绍了关于表达式的概念。在程序语句中最
21、典型的表达式语句是赋值语句,如:i=46;表达式语句是由表达式加上分号所构成的。在C语言中,一个程序语句必须以分号结尾。空语句空语句是指只有一个分号的语句,如:;一个空语句表示什么操作都无需做。通常使用空语句时是用它来做被转向点或者在循环语句中会出现这样一条空语句,代表循环体不进行任何操作。复合语句复合语句是用“”大括号括起来的一些语句。在复合语句中含有多条语句。如:int sum,a=2;sum=a+8;printf(“sum=%dn”,sum);U注意:在C程序中语句都是以分号作为结尾,但是复合语句的大括号结尾不用加分号。预处理命令本讲大纲:宏定宏定义义文件包含文件包含宏定义预处理命令是C语言
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 如何与家教签订2025年的合同或协议
- 2025合作伙伴协议合同范本
- 2025年个人影像技术制作的合同范本示例
- 《生育与健康》课件
- 2025购销合同范本3
- 2025货车买卖合同样本模板
- 2025年度机械设备采购合同专业版
- 2025国内租赁合同模板
- 《课件传播的途径与策略》
- 诺贝尔生平创见课件
- 青马工程笔试试题及答案
- 豆粕交易合同协议
- 项目设计安全管理制度
- 电子化采购招投标平台系统建设项目解决方案
- 小学京剧知识
- 铁塔土建施工方案
- 2025年演出经纪人《演出市场政策与经纪实务》考前点题卷一
- GB/T 45235-2025电子电气产品中双酚A的测定高效液相色谱法
- 2025年度祠堂宗教用品销售承包合同3篇
- 2024旅行社与境外旅游机构入境合作框架协议范本3篇
- 世界银行集团简介课件(PPT 48页)
评论
0/150
提交评论