资源预览内容
第1页 / 共87页
第2页 / 共87页
第3页 / 共87页
第4页 / 共87页
第5页 / 共87页
第6页 / 共87页
第7页 / 共87页
第8页 / 共87页
第9页 / 共87页
第10页 / 共87页
亲,该文档总共87页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1C语言培训(第一讲)上海*通信技术有限公司金刚 (seniordbasina.com)2011-032C语言概述数据类型运算符和表达式C程序语句函数编译预处理Linux系统概述培训大纲3C语言概述C语言是70年代初问世的。1978年由美国 电话公司B.W.Kernighan和D.M.Ritchit合著了著 名的”THE C PROGRAMMING LANGUAGE” 一书。通常简称为,也有人称之为 标准。但是,在中并没有定义一个完 整的标准C语言,后来由美国国家标准协会 (American National Standards Institute)在此基础 上制定了一个C语言标准,于1983年发表。称 之为ANSI C.4C语言概述C语言是国际上广泛使用的,且很有发展 前途的计算机高级语言,时下流行的C+语言 和C#语言都是从C语言发展而来的。C语言适合用来进行系统描述,即可用来 编写系统软件,也可用来编写应用软件。C语言是一种与UNIX密切相关的程序设计 语言,它最初用于DECPDP-11计算机UNIX。20世纪70年代以来,操作系统中的大部分 内容和应用程序都是用C语言编写的。5C语言优点语言简洁、紧凑(32个关键字),使用方便、自由。auto break case char const continue default do double else enum extern float for goto if int long register return short signed static sizeof struct switch typedef union unsigned void volatile while6C语言优点运算符丰富,共有34种,C语言把括号、赋值、强制类 型转换等都作为运算符处理。表达式类型多样化,灵 活使用各种运算符可以实现在其它高级语言上难以实 现的运算。 数据结构合理,具有现在语言的丰富数据结构,能用 来实现各种复杂的数据结构(如链表、树、栈等)的 运算。 具有结构化的控制语句,是结构化的理想语言 允许位操作和对硬件进行编程。 生成目标代码质量高,程序执行效率高 程序可移植性较好7简单的C程序介绍vi test.c #include void main() printf (“Hello World!”); 保存后退出 在操作系统下使用gcc命令编译源程序,如下所示: gcc -o test test.c运行目标程序: ./test输入结果如下所示: Hello World!main是主函数的函数名,表示这是一个主函数。每一个C源程序都必须有,且只 能有一个主函数main。include称为文件包含命令,扩展名为.h的文件称为头文件。8C语言概述数据类型运算符和表达式C程序语句函数编译预处理Linux系统概述培训大纲9数据类型一个程序应包括数据的描述和动作的描述两方面的内容 。著名计算机科学家沃思曾提出一个公式:程序=数据结构+ 算法,可见数据结构在程序中的地位。C语言为用户提供了丰富的数据结构,还允许用户自定 义复杂的数据结构。C语言提供的数据结构是以数据类型的形 式出现的,C的数据类型划分如下图所示:实型(浮点型) 基本类型构造类型指针类型空类型枚举类型字符型整型数组类型结构体类型共用体类型10数据类型常量与变量C语言中数据有常量与变量之分。常量一般能从字面形式判别,也可用一个标识符代表, 可用下面的形式声明:#define 常量名 常量值例如:#define PI 3.14 /* 定义PI代表常量3.14 */“/*” 和“*/”之间表示这行符号中为注释内容,不会被编译。变量可用下面的形式声明:数据类型 变量名;如:int i;char name;在C语言中,习惯上用大写字母代表常量,用小写字母 代表变量。对于变量,要求“先定义,后使用”。11数据类型2.整型数据 1)整型常量整型常量可分为:int、short int、long int和unsigned int、unsigned short 、 unsigned long等类型,他们表示的数的范围不同。 2)整型变量 整型变量可分为基本型、短整型、长整型3种,下面给出一个示例: main() int a,b,c;unsigned d;a=6;b=-7;u=78;c=a+b+u;printf(“%dn”,c); /*printf为格式化输出函数 */* %d表示输出格式化为十进制的整数*/ 运行结果为: 7712数据类型2.实型数据1)实型常量实型常量有两种表示方式,一种为十进制形式,如0.12、36.2;另一种为指数形式,如123e3表示123000。要注意e字母之前 必须要有数字,e字母后面必须为整数。2) 实型变量实型变量分为单精度(float)和双精度(double)两种,如:float x;double y;单精度实数在内存中占4个字节,而双精度实数在内存中占8 个字节。13数据类型4. 字符型 1) 字符常量C语言字符常量是用单引号括起来的一个字符,如a、A等,注意以上两个字符是不同的。另外,C语言还允许以一个“”开头的特殊字符常量,具体规定如表所 示:特殊字符常量表字符类型功能n换行t横向跳格v竖向跳格b退格r按Enter键f走纸换页看以下下来代码的输出结果: main() printf(“ ab ct dertgn”);printf(“htibjd”); 14数据类型4. 字符型 2) 字符变量用来存放字符变量,且只能放一个字符,定义规则如下:char d ; /*表示d为字符型变量*/ 3) 字符数据在内存中的存储形式和使用方式字符变量在对应的内存中存放的是该字符相应的ASCII码,例如字符a的ASCII 码为97,b的ASCII代码为98,而字符与整型变量还可以互相赋值。示例代码: main() char c1,c2;c1=97,c2=98;printf(“%c %c”,c1,c2); /*%c表示输出格式为字符类型*/ 输出结果是: a b 4) 字符串常量字符串常量与字符常量的区别在于前者是双引号括起来的字符序列,而后者是 单引号括起来的单个字符。如在内存中a的长度是一个字符,而“a”则占有两个字 符,后者包括 结束标志“0”15数据类型5.枚举型所谓枚举,是指将变量的值一一列举出来,变量的值只限于 列举出来的值。可用如下定义形式:enum weekday sun,mon,tue,wed,thu,fri,sat;它定义了一个名为weekday的枚举类型,能取7个值然后,我们可以用此类型来定义变量,如:enum weekday date;则date被定义成枚举变量,它能取sun到sat这7个值之一,如:date=sun;也可直接定义枚举变量,如:enum weekday sun,mon,tue,wed,thu,fri,sat date; /*效果与上相同*/在C编译中,对枚举元素按常量处理,且它们是有值的。在上面的定义中, sun的值为0,sat的值为6.16数据类型代码示例:main()enum sun,mon,tue,wed,thu,fri,sat date;date=mon;printf(“%d”,date);输出结果是:1说明:枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。在编译中,对枚举元素按常量处理,故称枚举常量,它们不是变量,不能对它们赋值。枚举元素作为常量,它们是有值的,c语言编译按定义时的顺序使它们的值 为0,1,2,枚举值可以用来做判断比较一个整数不能直接赋给一个枚举变量。17数据类型5.布尔型C语言将非零整数都认为是真,认为零是假。布尔型只有真、假两个值。在 表达式中,布尔量也作为整数处理,整数也可出现在布尔表达式中。示例代码: main() int m=1,j=6;while(m) /*m不等于0,为真*/j=j+m;m=m-1;printf(“%d”,j); 则输出结果是: 718数据类型7.数组数组是有序数据的集合,数组中每一元素都属于同一数据类 型,用一个统一的数组名和下标来唯一的确定数组中的元素。1)一维数组一维数组的定义格式如下:类型说明符 数组名常量表达式;如:int a10;数组名为a,且有10个元素,下标从0到9,即a0到a9注意常量表达式不能是变量19数据类型7.数组一维数组的引用:只能逐个引用数组元素而不能引用整个数组数组名下标;代码示例如下:main()int j,a10;for(j=0;j=0;j-)printf(“%d”,aj);运行结果是:987654321020数据类型7.数组一维数组的初始化列举如下:static int a10=0,1,2,3,4,5,6,7,8,9; /*static是静态数据的意思*/则a0=0a1=1a9=9如果花括号中值的个数少于10,则后面的都为02)字符数组字符数组是一类特殊的数组,数组的每一个元素存放一个字母。下面是它的定义方式:char 数组名常量表达式;如: static char c5=a,e,t,g,b;3).二维数组元素的引用和初始化数组类型 数组名常量表达式1常量表达式2=初始化数据;21数据类型8.指针指针是C语言中的一个重要特色,可以说是C语言的精华。它的概念非常复杂,使用非常灵活,是C语言中最大的难点 。一个变量在内存中的地址就称为该变量的指针。我们通过地 址就能找到所需的变量单元。指针变量的定义用下面的形式:类型标识符 *标识符;例如:int *pointer_1;定义了一个指针变量pointer_1,它指向整型变量。如果还定义了一个整型变量i,则可用赋值语句使一个指针变量 指向一个整型变量。如:pointer_1=22数据类型8.指针1. f(a,10);void f(int x,int n)2) .实参用数组名,形参用指针变量,如:void main()int a10; f(a,10);f(int *a,int n) 23数据类型8.指针二维数组是“数组的数组”,例如:定义int a34=1,3,5,7,9.11.13,15,17,19,21,23,则二维数组a是由3个 一维数组所组成的。设二维数组的首行的首地址为2000,则有:24数据类型8.指针指向多维数组的指针变量: 把二维数组a分解为一维数组a0,a1,a2之后,设p为指向 二维数组的指针变量,可定义为:int (*p)4它表示p是一个指针变量,它指向包含4个元素的一维数组。 若指向第一个一维数据a0,其值等于a,a0,或函数指针是指向函数地址的指针。例如: int (*func)(char a,char b);指针数组:一个数组,若其元素均为指针类型数据,称为指 针数组,也就是说,指针数组中的每一个元素都相当于一个指针 变量。一维指针数组的定义形式为:类型名 数组名数组长度; 例如:int *name4;char *name=“this”,”is”,”a”,”dog”;指向指针的指针:例如:char *p;p的前面有两个*号。*运算符的结合性是从右到左,因此*p相当于 *(*p),显然*p是指针变量的定义形式。如果没有最前面的*号,那就是定 义了一个指向字
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号