C语言数据类型与运算规则.ppt_第1页
C语言数据类型与运算规则.ppt_第2页
C语言数据类型与运算规则.ppt_第3页
C语言数据类型与运算规则.ppt_第4页
C语言数据类型与运算规则.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

数据类型与运算规则 一、数据与数据类型 二、C语言的基本数据类型及其表示 三、C语言中的运算规则 四、算术运算与赋值运算 五、关系运算与逻辑运算 六、其他运算 商学院商学院 数据与数据类型 l 什么是数据? 在程序中,数据是程序加工、处理的对象,也是加工的结 果。 l 什么是数据类型? 在程序中,程序所能处理的基本数据对象被划分成具有同 样性质的数据的集合,这样的数据集合称为数据类型。在 C语言中,任何数据呈现的形式有两种:常量或变量。无 论常量还是变量都必须属于各种不同的数据类型。 商学院商学院 C语言规定的主要数据类型如下: 整数型 int 单精度型 float 实数型(浮点型) 基本类型 双精度型 double 字符型 char 数据类型 指针类型 数组型 构造类型 结构型 struct 联合型 union 枚举型 enum 无值类型(空类型)void 数据与数据类型 商学院商学院 l 什么是类型名? C语言为每种类型定义了一个标识符,它通常被称为类 型名。类型名由一个或几个关键字组成。 l 什么是构造类型? 构造类型一般是由其他的数据类型按照一定的规律构造 而成,结构比较复杂。 数据与数据类型 商学院商学院 C语言的基本数据类型及其表示 l 什么是常量? 常量是指程序在运行时不能改变的量。(一般以自身的存在形式直 接表示) 注:常量并不占内存,在程序运行时它作为操作对象直接出现在运算器 的各寄存器中 商学院商学院 C语言的基本数据类型及其表示 十进制 整型常量 八进制 以数字“0”开头 数值常量 十六进制 以数字“0x”或“0X”开头 实型常量 小数形式 如: -1.2, 0. 指数形式 如: -12.2e-5 常量 字符常量 字符常量 字符串常量 注:长整型也可以用十进制、八进制和十六进制形式表示。 其表示形式是在常量之后加上字母“l”或者“L”。 例如:123L,123l 商学院商学院 l 常量应用: 整型常量:123,-123,123L,123l 八进制(以0开头):0123,-038,0123l,0123L 十六进制(以0x开头):0x123,-0x1f 实型常量:-1.23,2E+4,-2.3E-4 字符常量:a,A,b,1,0 字符串常量:“Computer” C语言的基本数据类型及其表示 商学院商学院 l 什么是符号常量? 用标识符表示的常量称为符号常量。C语言中用宏定义命令对符号 常量进行定义,其定义形式为: #define 标识符 常量 (宏定义的功能是:在编译预处理时,将程序中宏定义命令之后出 现的所有符号常量用宏定义命令中对应的常量一一替代。) #define PR 30 main( ) int num,total; num=3; total=num*PR; printf(“total=%dn”,total); C语言的基本数据类型及其表示 1、符号PR代替常量30,称为符号常量 2、符号常量的定义是在编译预处理语句里 进行的,称为宏定义 3、符号常量一般用大写 商学院商学院 l 什么是变量? 变量是指在程序运行时可以改变的量。在程序里的一个 变量可以看成是一个存储数据的容器或存储单元,在该 单元中存放变量的值. l 变量的定义形式: 类型说明符 变量名表; l 变量名表的形式是:变量名1,变量名2,变量名n C语言的基本数据类型及其表示 商学院商学院 l C语言提供的基本变量类型有: 整型变量 数值变量 变量 实型变量 字符变量 指针变量 例如: int a,b,c; /* 说明a,b,c为整型变量 */ char cc; /* 说明cc为字符变量 */ double x,y; /* 说明x,y为双精度实型变量*/ l 注意:变量要先定义,后使用,每一个变量被指定为一确定类型。关 键字和预定义标识符不要另作它用。 C语言的基本数据类型及其表示 商学院商学院 l 整型数据及其表示 l 整型的类型:整型、长整型、无符号整型和无符号长整型。 (计算机中的整型实际上是数学中的整型的一个子集,) (C语言中,所有的数据型常量都带有符号,所以整型常量只区 别整型和长整型两种形式,而没有无符号整型常量。) l 整型常量 l C的整常数可用以下三种形式表示: 1:十进制整数:123, -456, 0 2:八进制整数:以0开头的数是八进制数: 0123=八进制123 ,十进制83(1*8*8+2*8+3) 011=十进制9 3:十六进制整数:以0x或0X开头的数是十六进制数 C语言的基本数据类型及其表示 商学院商学院 l 整型常量 C的整常数可用以下三种形式表示: 1:十进制整数:123, -456, 0 2:八进制整数:以0开头的数是八进制数: 0123=八进制123 ,十进制83(1*8*8+2*8+3) 011=十进制9 3:十六进制整数:以0x或0X开头的数是十六进制数 0x123=16进制123 ,十进制291(1*16*16+2*16+3) -0x11=十进制-17 注:一个整常量后加一个字母l或L,则认为是long型常量. 例如:123L,017l,0Xf3acL 整型变量以关键字int作为基本类型说明符,另外配合4个类型修饰 符,用来改变和扩充基本类型的含义,以适应更灵活的应用。 C语言的基本数据类型及其表示 商学院商学院 ANSI标准规定的整型变量属性表 数据类型 占用字节 数 二进制位 取值范围 int short int long int signed int signed short int signed long int unsigned int unsigned short int unsigned long int 2 2 4 2 2 4 2 2 4 16 16 32 16 16 32 16 16 32 -3276832767 同int -21474836482147483647 同int 同int 同long int 065535 同unsigned int 04294967295 商学院商学院 例:已知,整数a,b,正数u 。求:a+u,b+u的值 main( ) int a,b,c,d; unsigned u; a=12;b=-24;u=32767; c=a+u;d=b+u; printf(”a+u=%d,b+u=%dn”,c,d); 注:数据的溢出,常量与变量的类型要匹配 C语言的基本数据类型及其表示 商学院商学院 l 实型数据及其表示 实数类型 存储字节数 取值范围(绝对值 ) 有效位 单精度 双精度 长双精度 4字节 8字节 16字节 10-381038 10-30810308 10-4931104932 67 1516 1819 C语言的基本数据类型及其表示 商学院商学院 l 实型常量 C语言中的实数有两种表示形式: 1:十进制形式:由符号,数字和小数点组成,如:0.123, 0.0, - 54.0 2:指数形式:十进制小数 e 指数 或十进制小数 E 指数 如123e3 -1.23E-2,e或E的前面必须有数字,后面必须为整数。如不合 法的指数形式:e3,2.1e3.5 .e3, e 注: 1、实型常量一般都作为双精度实数来处理,并只用十进制表示。 2、如果要表示单精度实型常量和长双精度实型常量,只要在上述书写 形式后面分别加上后缀f(F)或l(L)即可。例如:2.3f,-21.23e3L C语言的基本数据类型及其表示 商学院商学院 l 实型变量 在C语言中,实型变量分为单精度、双精度和长双精度三种类型。所用关 键字如下: float 单精度 double 双精度 long double 长双精度 例如: float a,b; double c,d; long double e,f main() float a; double b; a=12345.6789; b=0.1234567891234567899e15; printf(“a=%f,b=%fn”,a,b); C语言的基本数据类型及其表示 实际输出结果: a=12345.678711; b=123456789123456.79700; 商学院商学院 l 字符型数据及其表示 l 什么是字符型数据? 字符型数据包括字符和字符串两种,字符型数据在计算机中存 储的是字符的ASCII码,而不是字符本身,一个字符占一个字节 。(在C语言中字符型数据和整型数据可以通用。即:它可以与 整型数据进行算术运算、相互赋值等,也可采用字符或整型数 据两种输出) l 什么是字符型常量? C语言中字符常量是用单引号括起来的一个字符.如 a,A,?,#”等都是字符常量,但注意a,A是不同的两个字符 常量。(字符常量占8位,一个字节。按ASCII码存储。) l 什么是转义字符? l 转义字符是一种特殊形式的字符常量,其意义是将转义符“”后 的字符原来的含义进行转变,变成某种另外特殊约定的含义。 C语言的基本数据类型及其表示 商学院商学院 l 什么是字符型变量? 字符型变量就是用来存放字符的变量。 例:char c1,c2; c1=a; c2=b; l 什么是字符串常量? 字符串常量就是用一对双引号括起来的字符序列。 注:C语言没有专门的字符串变量,如需要处理字符串,一般用字符型数 组来实现。 例:char c; c=”a” 是错的 注意:不能将一个字符串赋给一个字符变量。需要字符数组来存放字符串 常量, l 字符常量与字符串常量的区别有两个方面: 1) 字符串常量是用一对双引号括起来的一串字符,字符常量是用一对单引 号括起来的单个字符。 2) 字符常量在内存中占一个字符,而字符串常量除了每个字符占一个字节 外,其字符串结束符0也要占一个字节。如:字符常量a占一个字节,而 字符串常量”a”占2个字节。 C语言的基本数据类型及其表示 商学院商学院 l 指针型数据及其表示 指针是一种数据类型,它是一个变量在内存中所对应存储单元的地址。 l 指针的说明形式: 类型说明符 * 变量名 main() float a,*pa; int x,y,*px; pa= px= a=1.2; x=10; y=*px; printf(“%f,%d,%dn”,*pa,*px,y); C语言的基本数据类型及其表示 商学院商学院 l 变量的初始化 变量的初始化是指在变量说明的时候同时对变量赋初值 。 float x=123.2; int a,b,c=10; int x,*pa= C语言的基本数据类型及其表示 商学院商学院 C语言中的运算规则 l 运算的操作规则包括:运算符、表达式和运算过程。 运算符是C语言里用于描述对数据进行运算的特殊符号。 l C语言的运算符按其在表达式中与运算对象的关系可分为 : 单目运算:一个运算符连接一个运算对象,如:+、- 双目运算:一个运算符连接二个运算对象,如:+、- 三目运算:一个运算符连接三个运算对象,C语言中只有唯一一个“? :” 商学院商学院 l C语言的运算符按其在表达式中所起作用可分为:(P54) l 算术运算符: +、-、*、/、 l 自增自减运算符: +、- l 赋值与赋值组合运算符: 、+、-=、*=、/= l 关系运算符: 、 l 条件运算符: ?: l 逗号运算符: , l 其他: *、-i;运算符在变量前面,称为前缀式,表示变量在使用前自动加1 或减1; l i+;i-;运算符在变量后面,称为后缀式,表示变量在使用后自动加1 或减1; l 注:+、-运算只能用于变量(并且变量只能是整数、字符 型和指针),不能用于表达式或常量。因为自增、自减运 算是对变量进行加1或减1操作后再对变量赋新的值,而表 达式或常量都不能进行赋值操作。 算术运算与赋值运算 商学院商学院 例:设x=5 y=+x; 等价于: 先计算x=x+1(结果x=6),再执行y=x,结果y=6 y=x+; 等价于: 先执行y=x,再计算x=x+1,结果y=5,x=6 y=x+*x+; y=25 x=7 y=+x*+x; y=49 x=7 算术运算与赋值运算 商学院商学院 l 赋值运算符和赋值表达式 赋值运算符 “=” 功能是计算赋值运算符“”右边表达式 的值,并将计算结果赋给“”左边的变量。赋值运算符的 优先级只高于逗号,比其他的都低。结合性自右至左 赋值表达式 由赋值运算符将一个变量和一个表达式连接 起来的式子 变量名表达式 如:b=x*y+5 等价于b=(x*y+5) 算术运算与赋值运算 商学院商学院 类型转换 在对赋值表达式求解过程中,如果赋值运算符 两边的数据类型不一致,赋值时要进行类型转换。其转 换工作由C编译系统自动完成,转换原则是以“”左边的 变量的类型为准。即将“”右边的值转换为与“”左边 的变量类型相一致。 类型转换方式: 1、整型=实型:舍弃实数的小数部分 2、实数=整数:数值不变,但以实数形式表示数 3、整型=字符型:将字符数据的低8位放入整数的低8位中 算术运算与赋值运算 商学院商学院 main() P59 int i=5; float a=3.5, a1; double b=123456789.123456789; char c=A; print(“i=%d,a=%f,b=%f,c=%cn”,i,a,b,c); a1=i;i=a;a=b;c=i; print(“i=%d,a=%f,a1=%f,c=%cn”,i,a,a1,c); l 运行结果如下: i=5,a=3.500000,b=123456789.123457,c=A i=3,a=123456792.000000,a1=5.000000,c= 算术运算与赋值运算 商学院商学院 l 组合赋值运算符组合赋值表达式 1)组合赋值运算符 在赋值运算符“”之前加上其他运算符可以构成组合运算符,用于 完成赋值组合运算操作。表示形式: 运算符 其中的运算符可以是:+、-、*、/、|、 (1) a+=a (2) a-=a (3) a*=2+3 (4) a/=a+a (5) a%=(n%=2) (6) a+=a-=a*=a 算术运算与赋值运算 商学院商学院 关系运算与逻辑运算 l 关系运算与逻辑运算,用来构造C程序控制中的条件, 实现程序的选择结构和循环结构控制。对于关系运算和 逻辑运算的结果,将逻辑“真”记录为整数1,将逻辑“假” 记录为整数0。 l C语言中“真”和“假”的表示 C语言没有逻辑类型数据,是用数值来表示:非0值表示 “真”,0表示“假”。 任意一个表达式,如果值为0时,就代表一个“假”值;值 是非0,无论是正数还是负数,都代表一个“真”值。使用 逻辑或关系表达式返回0作“假”值,返回1作“真”值。 商学院商学院 l 关系运算符 p61 l 优先级:=和!=的优先级低于前四种; l 关系运算符的优先级低于算术运算符,高于赋值运算符。 如: A+BC+D l 结果只有两种:真(1)、假(0)。 l 注意:由于计算机处理浮点数是有误差的,所以不要拿浮 点数来做相等的比较。如:x=100.0; y=(x=100); 关系运算与逻辑运算 商学院商学院 关系运算与逻辑运算 l 关系表达式 用关系运算符将两个表达式连接起来的式子称 为关系表达式。 (表达式可以是算术表达式、关系表达式、逻辑表达式、赋值表达式和 字符表达式。但一般关系运算要求关系运算符连接的两个运算对象为同 类型数据。进行关系运算时,先计算表达式的值,然后再进行关系比较 运算。) 例:设a=2,b=3,c=4 a+b3*c 两个算术表达式 (a+b)c) 两个关系表达式 A!=a 两个字符表达式 商学院商学院 l 逻辑运算符与逻辑表达式 逻辑运算符(逻辑运算要求运算对象为“真”或“假”(0)。) 运算符 含义 运算对象个数 结合方向 简例 x=25/y; l “.”和“-”运算符 作用是引用构造数据类型的结构和联合中的分量,即表示结构或联合 中的成员。其形式为: 结构变量名.结构成员名 或 结构指针变量名.结构成员名 商学院商学院 l “()”和“”运算符 园括号改变优先级别,方括号用于标识数组元素的下标 。 l “*”和“ x= b=*x表示访问变量a的值。 其他运算 商学院商学院 l (type)运算符 (type)强制类型转换符,是单目运算符,其作用是进行数据类型的 强制转换,将右边表达式的值转换成括号中指定的数据类型。 (类型名)表达式 例:float a; int b; (int)(a*b) 将a*b结果强制类型转换 (int) a*b 将a强制类型转换 思考: 华氏

温馨提示

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

最新文档

评论

0/150

提交评论