第3章 数据类型、运算符与表达式.ppt

上传人:本田雅阁 文档编号:2254128 上传时间:2019-03-11 格式:PPT 页数:53 大小:257.51KB
返回 下载 相关 举报
第3章 数据类型、运算符与表达式.ppt_第1页
第1页 / 共53页
第3章 数据类型、运算符与表达式.ppt_第2页
第2页 / 共53页
第3章 数据类型、运算符与表达式.ppt_第3页
第3页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第3章 数据类型、运算符与表达式.ppt》由会员分享,可在线阅读,更多相关《第3章 数据类型、运算符与表达式.ppt(53页珍藏版)》请在三一文库上搜索。

1、第三章,数据类型、运算符与表达式,内容提要:,语言的基本元素 各种数据类型的常量和变量 变量的赋值 不同类型之间的混合计算 几种基本的运算符及表达式, 3.0 C的基本元素,1.符号集(字符集) C语言使用的基本符号有以下种: (1)大写字母 (2)小写字母 az (3)数字 09 (4)下划线 _ (5)标点符号和运算符 ( ) * / # $,.标识符 用来标记常量、变量、函数名字的字符序列(int a,b;) p39第2段 规则描述: 由字母、下划线、数字组成。 以字母、下划线开始。 标示符最大有效长度在不同系统中有不同的规定。 不能为系统保留字。(P365 附录),比如: 合法:X,x

2、,y1,_max,INT 非法:1x,int,$1,A,super man,super-man,注意: 1.语言区分大小写。Sun sun是个不同的标识符。 2. 标识符要见名示意: int price,total,aver; int a,b,c;, 3.1 C语言的数据类型,数据是操作的对象,数据类型是指数据的内在的表现形式(存储、运算) C语言提供了以下一些数据类型:,数据类型,指针类型,空类型(无值类型) void,构造类型, 3.2 常量与变量,.常量与符号常量 (1)在程序执行过程中,其值不能被改变的量为常量。常量区分为不同的类型:,整型 100,125,-100,0 实型 3.14

3、 , 0.125,-3.789 字符型 a, b,2,(2)符号常量 用一个标识符表示一个常量。 使用方法: #define 标识符 常量 例如: #define PRICE 30 P38 例题3.1 注:定义符号常量后不能再进行赋值 PRICE=10;,#include #define PRICE 30 (符号常量) void main ( ) int num, total; num = 10; total = num * PRICE; printf(total=%dn,total); 结果:,.变量 (1)值可以改变的,用标识符来(变量名)表示,在内存占有一定的存储单元. 见 P39 图3

4、-1,(2)定义变量的方法: 类型符 标识符,标识符.; int i,j,imax; float length,heigth;,(3)注意事项: 见名知意,即选有含意的英文单词或其缩写作标识符。 变量要先定义,后使用(P38 例题3.1.) 一般,符号常量大写,变量名首字母小写,函数名首字母大写, 3.3 整型数据,1.整型常量即整常数。在语言中,整常数 可用以下三种形式表示: (1)十进制整数。 如:123, -456。 (2)八进制整数。以0头的数是八进制数。 如:0123表示八进制数123,等于十进制数83,-011表示八进制数-11,即十进制数-9。,(3)十六进制整数。以0x开头的数

5、是16进制数。 如:0x123,代表16进制数123,等于十进制数 291。 -0x12等于十进制数10。,2.整型变量 (1)整型数据在内存中的存放形式 整数在内存中是以二进制补码形式存放的。,注意:Turbo C+ 3.0为一个整型变量在内存中分 配2个字节的存储单元(不同的编译系统为整 型数据分配的字节数是不相同的)。,(2)整型变量的分类:,共六种,有符号基本整型 有符号短整型 有符号长整型 无符号基本整型 无符号短整型 无符号长整型,(signed)int 2 (signed)short (int ) 2 (signed) long (int) 4 unsigned int 2 un

6、signed short (int) 2 unsigned long (int) 4,注意:括号表示其中的内容是可选的.(P43给出了各种整数类型的取值范围),(3)整型变量的定义: 语言规定在程序中所有用到的变量都必须在程序中定义,即“强制类型定义”。 例如: int a,b;(指定变量、为整型) unsigned short c,d;(指定变量、为无符号短整型) long e,f;(指定变量、为长整型),例3.2 整型变量的定义与使用 #include void main() int a,b,c,d; /指定、为整型 unsigned ;/指定为无符号整型变量 12; -24; 10; ;

7、 ; printf(”a+u=%d,b+u=%dn”,c,d); 结果:, 3.4 浮点型数据,1.浮点数又称为实数,主要有2种表示方法,两种表 示形式,小数 指数,0.123,.123,1. 3.1e-3 3.110-3,注意:字母e(或E) 前后必须有数字,且e后面的指数必须为整数.例如: 1e3、1.8e-3、3.e-6、.1e-3 e3、2.1e3.5、.e3、1e,2.浮点型变量的分类 浮点型变量取值范围和精度与机器以及编译器有关系,不同的系统会有差异。 浮点型变量分为单精度(float型)、双精度(double型)和长双精度型(long double)三类形式。(P46 表3-2)

8、,3.浮点型数据在内存中的存放形式 虽然浮点型数据的表示形式有两种,但在内存中是按照指数形式存储的。系统把一个浮点型数据分成小数部分和指数部分,分别存放。(图3-7),例3.4 浮点型数据的舍入误差,#include void main() float a,b; a = 123456.789e5; b = a + 20 ; printf(“%f,%fn”,a,b); ,4.浮点型常量的类型 C编译系统将浮点型常量作为双精度来处理。 例如:float f = 2.45678 * 4523.65 系统先把2.45678和4523.65作为双精度数,然后进行相乘的运算,得到的乘也是一个双精度数。最后

9、取其前7位赋给浮点型变量f。如是在数的后面加字母f或F(如1.65f, 654.87F),这样编译系统就会把它们按单精度(32位)处理。, 3.5字符型数据,1.字符常量 用单引号包含的一个字符. 如: 有些以“”开头的特殊字符称为转义字符. (P48 表3-3),a,A,$ abc、“a”,X,例如: n 换行 t 横向跳格(跳到下一个Tab位置) r 回车 反斜杠(代表一个反斜杠字符) ddd ddd表示1到3位八进制数字 xhh hh表示1到2位十六进制数字,2.字符变量 字符型变量用来存放字符常量,注意只能放一个字符。 字符变量的定义形式如下:char c1,c2; 可以用下面语句对c

10、1,c2赋值: c1 a;c2 101(A); 一个字符变量在内存中占一个字节,3.字符数据在内存中的存储形式 将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。 一个字符变量在内存中占一个字节。 字符型数据和整型数据之间可以通用(整数数据必须在0-256之间)。一个字符数据既可以以字符形式输出,也可以以整数形式输出。,例3.6 向字符变量赋以整数。,#include void main( ) char c1,c2; c1=97;(c1 = a) /*p364*/ c2=98;(c2 = b) printf(“%c %

11、cn”,c1,c2); printf(“%d %dn”,c1,c2); 输出结果:,例3.7 大小写字母的转换,#include void main( ) char c1,c2; c1=a; c2=b; c1=c1-32; c2=c2-32; printf(“c c,c1,c2); 结果:,说明: Turbo C 将字符变量定义为signed char型。其存储单元中的最高位作为符号位,它的取值范围是 -128127。如果在字符变量中存放一个ASCII码为0127间的字符,由于字节中最高位为0,因此用%d输出字符变量时,输出的是一个正整数。如果在字符变量中存放一个ASCII码为128255间的

12、字符,由于在字节中最高位为1,用%d格式符输出时,就会得到一个负整数。,4.字符串常量 字符串常量是一对双括号括起来的字符序列。如: “$123.45”, “a” (a) 可以使用printf函数输出一个字符串,如 printf(“How do you do.”); 注意:是字符常量,”是字符串常量,二者不 同。 如:假设被指定为字符变量 :char c; c=a; c=”a”;c=”CHINA”; 不能把一个字符串常量赋给一个字符变量。,规定:在每一个字符串常量的结尾加一个 “字符串结束标志”,以便系统据此判断字符串是否结束。规定以字符0作为字符串结束标志。 如果有一个字符串常量” ,实际上

13、在内存中是: 它占内存单元不是5个字符,而是6个字符,最后一个字符为0。但在输出时不输出0。,3.6 变量赋初值,1.语言允许在定义变量的同时使变量初始化 如: int a=3; / 指定为整型变量,初值为3 float f=3.56; / 指定为浮点型变量,初值3.56 char c=a; / 指定c为字符变量,初值为a,2.可以使被定义的变量的一部分赋初值 如: int a,b,c=5; /表示指定、为整型变量,但只对初始化,c的初值为 3.如果对几个变量赋以同一个初值 如: int a=3,b=3,c=3; 表示的初值都是。不能写成 int a=b=c=3; 4.定义的变量如果不赋值,则

14、里面数值不确定。,3.7 各数值类型间的混合运算,在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算. 类型转换是由系统自动进行的. 例如:10+a+1.5f-8765.123*b在C语言中是合法的表达式.,double,long,float,int,unsigned,char,short,高,低,图3-10 变量类型转换规则,3.8 运算符和表达式,1.C运算符简介 的运算符有以下几类: (1)算术运算符 (+ - * / %) (2)关系运算符 (;!) (3)逻辑运算符 (!;|) (4)位运算符 ( | )第12章 (5)赋值运算符 () (6)条件运算符 (?:) (7)逗

15、号运算符 (,),(8)指针运算符 (*和) (9)求字节数运算符(sizeof) (10)强制类型转换运算符( (类型) ) (11)分量运算符(-) (12)下标运算符( ) (13)其他 (如函数调用运算符(),2.算术运算符和算术表达式 (1)基本的算术运算符: +(加法运算符,或正值运算符。如:3+5,+3) -(减法运算符,或负值运算符。如:5-2,-3) *(乘法运算符。如:*) /(除法运算符。如:/) 注意: 两个整数相除,值为整数.如:3/2 = 1 除数、被除数有1个为负数,结果向0取整.如:-5/3 = -1 除数、被除数有1个为实数,结果为实数. 3.0/2 = 1.

16、5,(2)算术表达式和运算符的优先级与结合性 将算术运算符和括号将运算对象连接起来、符合C语法的式子成为算术表达式。 如:a*b/c-1.5+a 附录C 运算符和结合性,(3)强制类型转换运算符 可以利用强制类型转换运算符将一个表达式转换成所需类型。 一般形式:(类型名)(表达式) 例如: (double) 将转换成double类型 (int)(x+y) 将x+y的值转换成整型 (float)(5%3) 将5%3的值转换成float型,例3.8 强制类型转换。 #include void main() float ; int i; 3.6; (int); printf(“x=%f, i=%dn

17、”,x,i); 结果:,(4) 自增、自减运算符(+ , -) 作用是使变量的值增或减。 i+ (+i) i=i+1 i- (-i) i=i-1 i+与+i的区别: +i是先执行后,再使用的值; i+是先使用的值后,再执行。,例如: int i = 3; ; i的值先变成4, 再赋给,j的值均为 ; 先将 i的值3赋给,的值为,然后变为 p57,注意: (1)自增运算符(+),自减运算符(-),只能用于变量,而不能用于常量或表达式 。 3+,+(a+b)是非法的。 (2)和的结合方向是“自右至左”。 -a+ -(a+) (-a)+ 表达式是错误的,3.9 赋值运算符和赋值表达式 1.赋值运算符

18、(=) 赋值符号“”就是赋值运算符,它的作用是 将一个数据赋给一个变量。如“”的作用 是执行一次赋值操作(或称赋值运算)。把常 量赋给变量。也可以将一个表达式的值赋 给一个变量.如:a=b+3,2.类型转换 如果赋值运算符两侧的类型不一致,在赋值时要进行类型转换. (1)将浮点型数据(包括单、双精度)赋给整型变量时,舍弃浮点数的小数部分。 如:为整型变量,执行“i=3.56”的结果是使 的值为,以整数形式存储在整型变量中. (2)将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到变量中.,(3)将一个double型数据赋给float变量时,截取其前面7位有效数字,存放到float变

19、量的存储单元(4个字节)中。但应注意数值范围不能溢出。 如果将一个float型数据赋给double变量时,数值不变,有效位数扩展到16位,在内存中以8个字节存储,(4)字符型数据赋给整型变量时,由于字符只占1个字节,而整型变量为个字节,因此将字符数据(个二进位)放到整型变量存储单元的低位中。,(5)将一个int、short、long型数据赋给一个char型变量时,只将其低8位原封不动地送到char型变量(即截断)。 例如:int i=289; char c=a ; c=i; (6)将带符号的整型数据(int型)赋给long型变量时,要进行符号扩展,将整型数的16位送到long型低16位中 (7

20、)将非unsigned型数据赋给长度相同的unsigned型变量,也是原样照赋(连原有的符号位也作为数值一起传送)。,例3.9 有符号数据传送给无符号变量 #include void main() unsigned ; int ; ; printf(%un,a); ,3.复合的赋值运算符 在赋值符“”之前加上其他运算符,可以构成复合的运算符。 例如: = 等价于 *= 等价于 *() %= 等价于 ,4.赋值表达式 由赋值运算符将变量、常量、表达式连接起来的式子称为“赋值表达式”。 用法: 例如: “5+3”是一个赋值表达式 对赋值表达式求解的过程是: 求赋值运算符右侧的“表达式”的值; 赋给赋值运算符左侧的变量。,3.10 逗号运算符和逗号表达式,逗号运算符:将多个表达式连接起来,又称为“顺序求值运算符” 一般形式:表达式,表达式 求解过程:先求解表达式,再求解表达式。整个逗号表达式的值是表达式的值。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1