C语言的基本数据类型与表达式课件.ppt

上传人:小飞机 文档编号:4009369 上传时间:2023-03-31 格式:PPT 页数:33 大小:436.50KB
返回 下载 相关 举报
C语言的基本数据类型与表达式课件.ppt_第1页
第1页 / 共33页
C语言的基本数据类型与表达式课件.ppt_第2页
第2页 / 共33页
C语言的基本数据类型与表达式课件.ppt_第3页
第3页 / 共33页
C语言的基本数据类型与表达式课件.ppt_第4页
第4页 / 共33页
C语言的基本数据类型与表达式课件.ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《C语言的基本数据类型与表达式课件.ppt》由会员分享,可在线阅读,更多相关《C语言的基本数据类型与表达式课件.ppt(33页珍藏版)》请在三一办公上搜索。

1、第二章 C语言的基本数据类型与表达式 2.1 C语言的基本数据类型 2.2 常量和变量 2.3 运算符与表达式 2.4 数据类型转换,C语言程序设计教程,2,带符号数的表示,数有正负,在计算机中用0表示正,用1表示负。通常的做法是:用一个数的最高位来表示符号,若一个机器数(在计算机中使用的、连同数符一起数字化了的数)的最高位为0,表示其是一个正数,否则是一个负数。计算机中对带符号数有原码、补码、反码三种形式。原码规则为:符号位遵循上述规则。正数和负数的数值部分均用其绝对值的二进制表示。补码规则为:符号位遵循上述规则。正数的数值部分就是该数的二进制。负数的数值部分为该数的绝对值的二进制按位取反后

2、加1。,3,ASCII码 字符是计算机中最多的信息形式之一,是人与计算机进行通信、交互的重要媒介。在计算机中,要为每个字符指定一个确定的编码,作为识别与使用这些字符的依据。国际上使用最多的字符符号总数不超过128种,可用7位二进制位的不同编码表示,美国信息交换标准码(American Standard Code for Information Interchange),简称ASCII码,得到广泛的应用。标准的ASCII码是7位码,用1个字节表示,最高位总是0,可以表示128个字符。扩展的ASCII码是8位码,也是一个字节表示,其前128个码与标准的ASCII码是一样的,后128个码(最高位为1

3、)则有不同的标准。,4,2.1 C语言的基本数据类型,数据类型概述:,第2章 C语言的基本数据类型与表达式,在程序中要指定数据的类型和数据的组织形式,即数据结构。C语言中的数据类型分类如下:C语言中的数据,有常量和变量之分,它们分别属于上述这些类型。,5,1、常量:(1)十进制形式:与数学上的整数表示相同;例如:12,-100,0(2)八进制形式:在数码前加数字0;(八进制的数码范围为07)例如:012=1*81+2*80=10(十进制)(3)十六进制形式:在数码前加0X(数字0和字母X)。例如:0 x12=1*161+2*160=18(十进制),一、整型,第2章 C语言的基本数据类型与表达式

4、,2、分类:根据数据所占的二进制位数分为:int、shortint、longint。在Turbo C中,short占2个字节,int占2个字节,long占4个字节。同样存储长度的数据又分unsigned、signed;故可组合出六种类型。,6,3.整型数据在内存中的存放形式以二进制补码的形式存放。如整数12在内存中的实际存放情况下图所示:整数12在内存中的存放示意图 正数的补码:与原码相同负数的补码:负数取绝对值二进制按位取反 再加1补码 注意:若一个整数后没有l或L,则表示其是基本整型,占2个字 节,否则表示其是长整型,占4个字节。如:12在内存中占2个字节,而12L则占4个字节。,7,3的

5、原码 按位取反 加1 得-3的补码 由此可知,在整数的16位中,最左边的一位为符号位,为0,表示数值为正;为1,表示数值为负,例如:求-3在内存中的存放形式,8,4、值域:由机器中数据的存储长度决定。关键字 所占位数 取值范围 short 16-3276832767(即-215215-1)unsigned short 16 065535(即0216-1)int 16-3276832767 unsigned int 16 065535 long 32-21474836482147483647 unsigned long 32 04294967295,9,5、整型数据的溢出:,不同的整型数据有不同

6、的取值范围,在程序运行过程中,如果出现数值超出整型数据的允许值范围,就会出现“溢出”。例如:一个int型的变量的最大值为(215-1)=32767,如果再加1,则产生溢出,其结果为:-215=-32768,32767,-32768,10,1、常量:(1)十进制小数形式:由数字和小数点组成;例如:3.4,4.,.3。(2)指数形式:“十进制小数”+“e(或E)”+“十进制数整数”。例如:12.5e-6 表示12.510-6 e或E的两边必须有数,且其后面必须为整数;如:6E0.2 e5 2、分类:关键字 字节数 取值范围 有效数字 float 4 3.410-38 3.41038 6 7 dou

7、ble 8 1.710-308 1.710308 1516,注意,第2章 C语言的基本数据类型与表达式,二、实型,11,1、字符常量:(1)用单引号括起来的一个字符;如:A、1、?等。(2)用单引号括起来的由反斜杠()引导的转义字符。转义是指在源程序中碰到这种字符组合时,反斜杠的意义已经发生转变,变成控制代码和具有某些特殊用途的单个字符。如:n 字符形式 功能 n 换行 t 横向跳格 b 退格 r 回车 反斜杠字符 单引号字符 ddd 8进制数表示的ASCII码对应的字符 xhh 16进制数表示的ASCII码对应的字符,第2章 C语言的基本数据类型与表达式,三、字符类型,12,2、分类:cha

8、r 和 unsigned char;3、变量值的存储 字符数据在内存中存储的是字符的ASCII码 一个无符号的整数,其形式与整数的存储形式一样。例如:字符A的ASCII码为65,在内存中的存放形式为:由一个大写字母的ASCII码可以很容易的得出其对应的小写字母的ASCII码,他们之间相差32:小写字母的ASCII码大。比如:A的ASCII码为65,则a的ASCII码为97。同样还可以很容易的得出其它大写字母的ASCII码,相邻的两个大写字母的ASCII码相差1。比如:D的ASCII码为68。,第2章 C语言的基本数据类型与表达式,知道了字符A的ASCII码则A可以表示为:A、x41、101。,

9、13,又如:字符0的ASCII码为48,在内存中的存放形式为:,而整数0在内存中的存放形式为:,数字字符与数字是两个不同的概念,它们相差48,也即:字符0整数0+整数48。,同样,知道任何一个数字字符的ASCII码,可以很容易的得出其它数字字符的ASCII码,相邻的两个数字字符之间ASCII码相差1。,14,4、字符串:是用一对双引号括起来的字符序列。如:“SHANGHAI”,“AbcdeFGHijk”,“How are you”。字符串中字符的个数称为字符串长度。长度为0的字符串(即一个字符都没有的字符串)称为空串,表示为“”(一对紧连的双引号)。例如“How do you do.”、“Go

10、od morning.”等,都是字符串常量,其长度分别为14和13(空格也是一个字符)。如果反斜杠和双引号作为字符串中的有效字符,则必须使用转义字符。例如(1)C:msdosv6.22 C:msdosv6.22(2)I say:Goodbye!I say:Goodbye!“,注意,a与“a”的区别。,15,一、常量与符号常量 常量是指在程序运行中,其数值不能被改变的量。常量又可分为直接常量和符号常量。,第2章 C语言的基本数据类型与表达式,2.2 常量与变量,16,120、-100、0;0120、072;0 xFFFF、0 x1e、0X28AF,0XED4;120L,200L;长整型常量 3.

11、14、-3.1、5.12E-6;a、#、n、101;099、12f、0 xg、48EA、0 x28aL;019.5、1e-08;2.1E10.2、E-6、6.4E+4.8、E9;changsha、+?ab;、p、ab;,第2章 C语言的基本数据类型与表达式,1、直接常量:是在程序中直接引用的数据。,请判断这些常量正确与否:,17,120、-100、0;0120、072;0 xFFFF、0 x1e、0X28AF,0XED4;120L,200L;长整型常量 3.14、-3.1、5.12E-6;a、#、n、101;099、12f、0 xg、48EA、0 x28aL;019.5、1e-08;2.1E1

12、0.2、E-6、6.4E+4.8、E9;changsha、+?ab;、p、ab;,18,2、符号常量 是用标识符来表示一个数据;在程序不能给它赋值。定义形式:#define 标识符 常量数据 例如:#define PI 3.14159 在程序预处理时,凡是出现标识符PI的地方都将用数据3.14159来替换。如:2*2.3*PI 就等价于 2*2.3*3.14159。,第2章 C语言的基本数据类型与表达式,二、变量1.变量的概念 变量是指以标识符为名字,在程序运行过程中,其值可以被改变的量称为变量。2.变量的两个要素,19,(1)变量名。每个变量都必须有一个名字变量名,变量命名遵循标识符命名规则

13、。(2)变量值。在程序运行过程中,变量值存储在内存中。在程序中,通过变量名来引用变量的值。说明:标识符命名的良好习惯见名知意:所谓“见名知意”是指,通过变量名就知道变量值的含义。通常应选择能表示数据含义的英文单词(或缩写)作变量名,或汉语拼音字头作变量名。例如,name/xm(姓名)、sex/xb(性别)、age/nl(年龄)、salary/gz(工资)。,20,3.变量的定义与初始化在语言中要求对所有用到的变量,必须先定义、后使用;且称在定义变量的同时进行赋初值的操作为变量初始化。,(2)变量初始化 在说明变量的同时给变量一个初始值。,int a=5,b=3;int a=b=c=3;int

14、a=3,b=3,c=3;,例如,21,一、C语言的运算符简介 按操作功能,C语言中的运算符大致可分为右边的12大类,第2章 C语言的基本数据类型与表达式,2.3 运算符与表达式,算术运算符+-*/%关系运算符=!=逻辑运算符!&位运算符|&赋值运算符=条件运算符?:逗号运算符,指针运算符*和&求字节数运算符 sizeof强制类型转换运算符分量运算符 下标运算符,22,1、运算符的优先级与结合性 优先级别:它决定了运算符的运算顺序,即优先级高的运算符先运算,优先级低的运算符后运算。结合规则:规定了连续几个具有相同优先级运算符的运算顺序,即优先级相同的由结合规则来决定运算顺序。自左至右的结合方向,

15、称为左结合性。反之,称为右结合性。结合性是语言的独有概念。2、表达式求值(表达式是由运算符和括号将操作数连接起来,符合C语言规则的式子,其值为数值型数据)1)按运算符的优先级高低次序执行。例如,先乘除后加减。2)如果在一个运算对象(或称操作数)两侧的运算符的优先级相同,则按语言规定的结合方向(结合性)进行。例如,算术运算符的结合方向是“自左至右”,即:在执行“a b+c”时,先执行“a-b”;然后再执行加c的运算。,23,二、算术运算符和算术表达式 1.五种基本算术运算符+、-(减法/取负)、*、/、%(求余数)(1)关于除法运算符/C语言规定:两个整数相除,其商为整数,小数部分被舍弃。例如,

16、5/2=2。但5.0/2=2.5;(2)关于求余数运算符 要求两侧的操作数均为整型数据,否则出错。例如:5%3的值为2;-5%3的值为-2;5%(-3)的值为2;-5%(-3)的值为-2;12.3%3,第2章 C语言的基本数据类型与表达式,24,2、自增(+)与自减(-)运算符:自增运算使单个变量的值增,自减运算使单个变量的值减1,结合性:自右至左。用法与运算规则(1)前置运算:运算符放在变量之前:+i,-i。先使变量的值增(或减),然后再以变化后的值参与其它运算,即先增减、后运算。(2)后置运算运算符放在变量之后:i+,i-。变量先参与其它运算,然后再使变量的值增(或减),即先运算、后增减。

17、例如:,等价于 i=i+1;,j=i;i+;所以i的值为4,j的值为3。,i+;j=i;所以i的值为4,j的值为4。,(1)i+;+i;(2)i=3;j=i+;(3)i=3;j=+i;,第2章 C语言的基本数据类型与表达式,3、算术表达式,25,1、赋值运算符 赋值符号“=”就是赋值运算符,它的作用是将一个表达式的值赋给一个变量。赋值运算符的一般形式为:变量=表达式 优先级:只比逗号运算符高;结合性:自右至左;例如:(1)x=(y=12)/4 y值为12,x值为3,表达式的值为3(2)x=y=12/4 y值为3,x值为3,表达式的值为3(3)x=(y=12/4)y值为3,x值为3,表达式的值为

18、3(4)(x=y)=12/4 如果表达式值的类型,与被赋值变量的类型不一致,但都是数值型或字符型时,系统自动地将表达式的值转换成被赋值变量的数据类型,然后再赋值给变量。,第2章 C语言的基本数据类型与表达式,三、赋值运算符和赋值表达式,26,2.复合赋值运算符 复合赋值运算符是由赋值运算符之前再加一个双目运算符构成的。复合赋值运算的一般格式为:表达式1 op=表达式2 它等价于:表达式1=表达式1 op(表达式2)当表达式为简单表达式时,表达式外的一对圆括号才可 缺省,否则可能出错。例如,x+=3/*等价于x=x+3*/y*=x+6/*等价于y=y*(x+6),而不是y=y*x+6*/设a=1

19、2,计算表达式a+=a-=a*12和a+=a-=a*=12的值 C语言规定的5种复合算术赋值运算符如下:+=,-=,*=,/=,%=;/*复合算术赋值运算符(5个)*/,27,3.赋值表达式 由赋值运算符或复合赋值运算符,将一个变量和一个表达式连接起来的表达式,称为赋值表达式。(1)一般格式 变量(复合)赋值运算符 表达式(2)赋值表达式的值任何一个表达式都有一个值,赋值表达式也不例外。被赋值变量的值,就是赋值表达式的值。例如,“a=5”这个赋值表达式,变量a的值“”就是它的值。注意:复合运算符是一个运算符,但功能上,是两个运算符功能的组合。,28,1、逗号运算符:,形式:逗号表达式1,逗号表

20、达式2,逗号表达式n 求解过程:自左至右,依次计算各表达式的值,“表达式n”的值即为整个逗号表达式的值。例如,逗号表达式“(a=3*5,a*4),a+5”的值=20:先求解a=3*5,得a=15;再求a*4=60;最后求解a+5=20,所以逗号表达式的值=20。优先级:最低;结合性:自左至右;表达式的值:最后一个表达式的值。注意:C语言常用逗号作为分隔符,例如:int a=3,b=4,c=5;,第2章 C语言的基本数据类型与表达式,四、其它运算符,29,形式有两种:sizeof 变量名 sizeof(类型名)结果为整型数。,int a;float x;sizeof a sizeof x siz

21、eof(int)sizeof(float),例如,第2章 C语言的基本数据类型与表达式,2、求字节运算符:sizeof 作用:求得变量或某种数据类型所需的字节数。,30,C语言允许整型、实型、字符型数据进行混合运算。有3种转换方式:自动转换、赋值转换和强制转换。一、类型自动转换 如果一个运算符两侧的操作数的数据类型不同,则系统按“先转换、后运算”的原则,首先将数据自动转换成同一类型,然后在同一类型数据间进行运算。转换规则如图所示。注意:箭头方向只表示数据类型由低向高转换,不要理解为int型先转换成unsigned型,再转换成long型,最后转换成double型。,第2章 C语言的基本数据类型与

22、表达式,2.4 数据类型转换,1)横向向左的箭头,表示必须的转换。char和short 型必须转换成 int 型,float型必须转换成double型。2)纵向向上的箭头,表示不同类型的转换方向。,31,int x=2;float y=1.6;char c=A;则:c+x*y=c+x*y 65(int)+2(int)*1.6(double)=68.2(double)二、赋值转换 在赋值时将赋值符右边值的类型转换成与其左边变量类型一致的类型。有下列几种情况:(1)实型 整型(字符型):去掉小数部分;,第2章 C语言的基本数据类型与表达式,例如,32,(2)整型(字符型)实型:补足有效位;(3)对

23、char、int、short、long、unsigned型数据:赋值符左边的变量(b位)赋值符右边数据(a位)若 a=b 原样照赋;ab 截断高a-b位,送低b 位;有符号数据 有符号变量:符号扩展;其他情况:高b-a 位全补0。符号扩展:符号位为0,剩余的高位补0;符号位为1,剩余的高位补1。,ab,float f=23;23.00000 f(7位)double f=A;65.0000000000000 f(15位),第2章 C语言的基本数据类型与表达式,33,三、强制类型转换 数据类型强制转换的一般格式为:(要转换成的数据类型)(被转换的表达式)(int)(x+y)/*将x+y的结果转换成int型*/例如:int a=2,b=5;float x=4.4;则有:表达式 结果 b/a 2(float)b/a 2.5(float)(b/a)2.0(int)x%a+x 4.4(int)x%(a+x)强制转换类型得到的是一个所需类型的中间量,原表达式类型并不发生变化。例如,(double)a 只是将变量a的值转换成一个double型的中间量,其数据类型并未转换成double型。,第2章 C语言的基本数据类型与表达式,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号