第2章C语言数据结构及其运算_第1页
第2章C语言数据结构及其运算_第2页
第2章C语言数据结构及其运算_第3页
第2章C语言数据结构及其运算_第4页
第2章C语言数据结构及其运算_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章 数据结构及其运算 考试要求:1. C的数据结构及其定义:基本类型,构造类型,指针类型,空类型2. C运算符的种类,运算优先级和结合性。3. 不同类型数据之间的转换与运算。4. C表达式类型和求值规则:赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式。0(整型) 1.2(实型) 244 1.414 a (字符型) 70 70.5 100 100 0 60 59.9Student 1000 2 字节问: 为什么要分数据类型? 答:2. 不同的数据类型存储格式不同 1. 不同的数据类型所实施的操作不同.第2.1节 数据类型 简单语句 复合语句 1. C的数据类型分为:基

2、本类型,构造类型,指针类型,空类型。2. 基本类型又包括:整型,字符型,实型(单精度型,双精度型),枚举型3. 构造类型又包括:数组类型,结构体类型和共用体类型。 C语言中的数据有常量和变量之分,但是它们都属于以上这些类型。 2.1.1 常量与变量 1. 常量 28 168 5.1 3.14 a y在程序运行中,其值不能被改变的量叫做常量。常量可以划分为不同的类型,如12,0,-3为整型常量;4.6,-3.15为实型常量;a,p为字符型常量。也可以用一个标示符来代表一个常量。如:#define pi 3.1415 符号常量 #define afsj 168 2 变量 area=2 其值可以改变

3、的量叫做 变量。一个变量应该有一个名字,在内存中占据一定的 存储单元。该存储单元中存放变量的值。注意变量名和变量值。变量名的命名规则和标示符的命名规则相同。int a;(为a分配了一个存储单元)a=2;简单说标示符就是一个名字。在C语言中,要求对所有用到的变量作强制定义,也就是“先定义,后使用”。 2.1.2 基本类型整型包括整形常量,整型变量。整型常量就是整常数。在C中使用的整常数有:八进制,十六进制和十进制。1. 整型整型常量1) 八进制整常数必须以0(零)开头,用0做八进制的前缀。由07八个数字组成。合法的八进制数有:017,0101,;分别表示十进制的15,65,65535。不合法的如

4、:256(没有前缀),03A2(出现了非八进制数码),-0127(出现了负号)。2) 十六进制整常数它的前缀为0X或0x。由09,AF或af十个数字和六个字母组成。合法的十六进制整常数有:0X2A,0XA0,0XFFFF;不合法的十六进制整常数有:5A(没有前缀),0Xf(出现了非十六进制数码)。3) 十进制整常数 十进制整常数没有前缀。有09十个数字组成。合法的十进制整常数有:237,-568,65533,1627。168不合法的十进制整常数有:023(不能有前缀),23D(含有非十进制数码)。整型变量整形变量可分为下面几类:基本整型(int),短整型(short int),长整型(long

5、 int),无符号型(unsigned)数据类型的定义格式:数据类型说明符 变量名标示符1,变量名标示符2,.变量名标示符n ;如: int a; 表示定义一个整型变量a; int x,y,z; 表示定义整型变量x,y,z; short b; 表示定义短整型变量b long i,j,k; 表示定义长整型变量i,j,k整型变量的存储方式 下表罗列了C中数据类型在内存中占用的字节数类型名称数值范围占用字节数int-32768327674Short int-32768327672long int-4Unsigned int 0!655352float4double8char1 intsizeof(i

6、nt)=42实型量实型常量 实型也叫浮点型.实型常量也叫实数或浮点数.在C语言中实数只采用十进制.它有两种形式:十进制数形式和指数形式.1) 十进制数形式由09 和小数点组成.例如:0.01,.125,5.6789,0.123,15.0,-234.54等都是合法的实数.2) 指数形式类似数学中的指数形式,C中的指数形式一般格式为:aEn(a为十进制数,n为十进制整数),如1.2E3(表示的是1.2*10)下面不是合法的实数: 345(没有小数点),E7(阶码标志E之前没有数字),-5(没有阶码标志),53.-E(负号位置不对),2.7E(没有阶码). 实型变量实型变量分为两类:单精度型(flo

7、at)和双精度型(double).在C中单精度占4个字节(32位)内存空间,双精度占8个字节(64位)内存空间.double a;a=2.2;3 字符型字符型量包括字符常量和字符变量.字符常量字符常量是用单引号括起来的一个字符如:a,c,+,=等都是合法的字符常量.& 2转义字符 n以反斜线开头,后跟一个或几个字符.它具有特定的含义,不同于字符原有的意义,所以叫做转义字符.例如n就是一个转义字符它的意义是回车换行. t a #字符变量字符变量的取值是字符常量,即单个字符.字符变量的类型说明符是 char如: char a,b ; /*定义a,b为字符变量*/ a=!;char x1,x2;x1

8、=!;x2=x1;float a,b;a=2.5;b=a;字符串常量它是由一对双引号括起来的字符序列.例如: ”world”,”I am a student”等 ” ”“a” a字符串常量的存储方式是:字符串常量占的内存字节数等于字符串中所有字符的字节数加1.增加的一个字节中存放0 这是结束标志.;如: 字符串”sss”,一共头3个字符,在内存中要占用4个字节长度:字符串结束之前的字符个数。由此,字符串常量和字符常量的不同:1)字符常量由单引号括起来,而字符串常量由双引号括起来.)字符常量只能是单个字符,字符串则是n个字符组成)可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个

9、字符变量,因为C语言中没有相应的字符串变量;)字符常量占一个字节的内存空间.字符串常量占的内存字节数等于字符串中所有字符的字节数加1. 如:a的内存字节数为1,而”a”的内存字节数为2.2.1.3构造类型构造类型是根据已经定义的一个或多个数据类型用构造的方法来定义的.也就是说,一个构造类型的值可以分解为若干个”成员”或”元素”.每个成员都是一个基本数据类型或又是一个构造类型.构造类型有下面几种:1) 数组类型:把相同数据类型的若干变量按有序的形式组织起来.2) 结构类型:是由若干相同的或不同的数据类型构造而成的3)共用体类型: 在共用体中,各成员共享用一段内存空间,所以一个共用体变量的长度等于

10、各成员中最长的一个成员的长度2.1.4 指针类型2.1.5 空类型在调用函数时,通常应该向调用者返回一个函数值.如: int max(int a,int b)该函数的返回值是一个整型数值,但也有一类函数,调用后不需要返回函数值,这种函数可以定义为”空类型”,他的类型说明符为void 如定义一个没有返回值的函数:void fun(char a,char b)2.2运算符和表达式1+3int a,b,c;a=2;b=3;c=a+b; 表达式是将运算量用运算符连接起来组成的式子,其中运算量可以是常量,变量,或函数.+-*/% 算术运算符 , =, =b,c3/2等等,他们的值是”真”和”假”,用”1

11、”和”0”来表示.例如:50的值为”真”,就是1. 注意:当关系运算符两边的值类型不一致时,如果一边是整型,一边是实型,C系统将自动把整型转换为实型数,然后进行比较.2) 逻辑运算符和逻辑表达式C语言中提供了三种逻辑运算符与(&),或(|),非(!),其中逻辑与和逻辑或是双目运算,而逻辑非是单目运算.由逻辑运算符和运算对象所组成的表达式叫做逻辑表达式.逻辑运算的值也是”真”和”假”,分别用”1”和”0”来表示.三种逻辑运算的求值规则为:Ab!a!ba&bA|b110011100101011001001100例如:!(50)的结果为假,用0来表示,所以它的值为0.嵌套的逻辑表达式,如(a&b)&

12、c等等2.2.6 测试数据长度运算符sizeof 运算符是一个单目运算符功能: 用于计算数据类型所占用的字节数,它的返回值为变量或类型的字节长度.例如:sizeof(int); /*返回值是2*/sizeof(float); /*返回值是4*/sizeof(double); /*返回值是8*/也可以求已经定义的变量如:float h; int x;x=sizeof(h);那么 x的值为42.2.7 数据类型的转换 转换方法有两种:自动转换和强制转换.1. 自动转换自动转换遵循以下规则:1) 如果参与运算的的数据类型不同,则需要先转换成相同的类型,然后进行运算.2) 数据类型的转换按数据长度增加

13、的方向进行,以保证数据的精度不降低,例如:int型和long型进行运算时,先把前者转换成后者再进行运算.3) 所有的浮点运算都是以双精度进行的,即使仅含float单精度型的表达式,也要先转换成双精度型再进行运算.4) char和short型参与运算时先转换成int型5) 在赋值运算时,如果赋值号两边的数据类型不一样时, 赋值号右边量的数据类型先转换成赋值号左边量的数据类型,假如右边量的数据类型长度比左边长,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入2.强制类型转换格式:(类型说明符)(表达式)作用:把表达式的运算结果强制转换成类型说明符所表示的类型。如:(float)a 把

14、a转换成实型(int)(a+b) /*把a+b的结果转换成 int型*/注意:类型说明符和表达式必须加括号(单个变量的表达式可以不加括号)2.2.7 位运算C中的按位运算有下面几种:按位操作符作用&位逻辑与|位逻辑或位逻辑异或-位逻辑反右移左移注意:所有参与位运算的量,都是按二进制位运算的.它只适用于字符型和整型变量以及它们的变体,对其他的数据类型不适用.(1) 按位与运算 &按位与运算符”&”是双目运算符.运算规则是:参与运算的两个数各对应的二进制位相与,只有对应的两个二进位都是1时,结果位才为1,否则为0 如: 9&5=1(2) 按位或运算 | 它是一个双目运算符 运算规则是: :参与运算的两个数各对应的二进制位相或,只要对应的两个二进位有一个是1,结果位就为1 如:9|5=13(3) 按位异或运算 它也是一个双目运算

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论