C语言基的本数据类型与表达式

上传人:wan****21 文档编号:244880937 上传时间:2024-10-06 格式:PPT 页数:34 大小:561KB
返回 下载 相关 举报
C语言基的本数据类型与表达式_第1页
第1页 / 共34页
C语言基的本数据类型与表达式_第2页
第2页 / 共34页
C语言基的本数据类型与表达式_第3页
第3页 / 共34页
点击查看更多>>
资源描述
上一页,下一页,第 3 版,C语言,程序设计教程,第 2 章 C语言的基本数据类型与表达式,2.1 C语言的基本数据类型,2.2 常量与变量,2.3 运算符与表达式,2.4 数据类型转换,教学目的和基本要求:,要求学生清楚数据类型与变量、常量的关系,掌握各种常量的性质和定义,掌握表达式中各种运算符的功能和特点,明白产生副作用的原因,了解数据类型的相互转换规则。,教学重点:,数据类型、常量定义,运算符与表达式。,存取数据必须先确定数据的编码方式、存储格式和所占的存储长度,C语言中把这三者结合起来,给出几种固定的形式,这些形式就是最基本的,数据类型,。,2.1 C语言的基本数据类型,为什么要设置数据类型?,在计算机中使用,一定长度的存储单元,(通常是字节的倍数)来存储数据。,存储的,编码方式,有:原码、反码、补码、ASCII码。,存储的,存储格式,有:定点型、浮点型。,其中,,用于存储数据的存储单元的长度决定了数据取值范围的大小。,字符型(,char,),整型(,short,int,long,unsigned,),单精度型(,float,),实型,双精度型(,double,),枚举类型(,enum,),数组类型(,),构造类型 结构体类型(,struct,),共用体类型(,union,),指针类型(,*,),空类型(,void,),基本类型,数据类型,2.1.1 数据类型概述,本章中将对基本类型中的前三类进行介绍和学习。,变量:,指,以标识符为名字,其值可以改变的量。,在学习各种数据类型之前,我们先简单了解一下,常量,和,变量,的概念。后面的章节中将会详细介绍。,常量,:,指在程序运行中,其数值不能被改变的量。,变量,代表计算机内存中的某一存储空间,变量的类型决定了该存储空间的长度和其,中存放,数据的编码方式及存储格式。,变量的类型也决定了该存储空间中存放数据的数据形式和取值范围。,*,八进制的数码范围为07;018,*,十六进制的,数码除了数字,0,9外,还使用英文字母,a f(,或,A F)表示1015。,如:0 x1e,注意!,2.1.2 整数类型,1、,整型常量:,(1),十进制形式:,与数学上的整数表示相同;,例如:12,-100,0,(2),八进制形式:,在数码前加数字0;,例如:012=1*8,1,+2*8,0,=10(十进制),(3),十六进制形式:,在数码前加0X(,数字,0,和字母,X,)。,例如:0 x12=1*16,1,+2*16,0,=18(十进制),如,Turbo C中,有,short(2字节)int(2字节)long(4字节),关键字,所占位数,取值范围,short 16,-3276832767,unsigned short 16,065535,int 16,-3276832767,unsigned 16,065535,long 32 -2147483648,2147483647,unsigned long 32,04294967295,2、,整型变量的分类:,根据数据所占的存储长度的不同分为:,int、short、long;,同样存储长度的数据又分unsigned、signed;,故可组合出六种类型。,3,、,整型变量的值域:,由机器中数据的存储长度决定,思考:int a=20000,b=20000,c;,c=a+b;c的值为多少?,如果c定义为long型是否能解决问题?,2、,实型变量的分类及值域,:,关键字 字节数 取值范围 精度(位),float 4 3.4,10,-38,3.4,10,38,7,double 8 1.7,10,-308,1.7,10,308,15,注意,2.1.3 实数类型,1、,常量:,(1),十进制小数形式:,由数字和小数点组成;,例如:3.4,4.,.3。,(2),指数形式:,“,十进制小数,”,+,“,e(或E),”,+,“,十进制数整数,”,。,例如:12.5e-6,表示12.5,10,-6,。,小数点不能单独出现;0.,.0,.,e或E的两边必须有数,且其后面必须为整数;,如:6E0.2,e5,字符形式 功能,n 换行,t 横向跳格,b 退格,r 回车,反斜杠字符,单引号字符,ddd 8进制数表示的ASCII码对应的字符,xhh 16进制数表示的ASCII码对应的字符,2.1.4 字符类型,1、,常量:,(1)用单引号括起来的一个字符;如:,A,、,1,、,?,等,。,(2)用单引号括起来的由反斜杠(,)引导的转义字符。,4、,字符串常量:,是用一对双引号括起来的字符序列。,注意:每个字符串的后面都有一个,0,结束符。,如:,“,SHANGHAI,”,,,“,AbcdeFGHijk,”,,,“,How are you,”,。,注意,a,与,“,a,”,的区别。,例如:字符A的ASCII码为:,65D(十进制)=41H(十六进制)=101Q(八进制),字符A可以表示为,A,、,x41,、,101,。,2、,字符型变量的分类:,char,和,unsigned char,;,3、,值域,(字符型可参与数学运算,也可看成一种一字节的整型变量),每个字符型数据在内存中占,一,个字节;包括ASCII字符表中的所有字符(可显示字符和非显示字符)。,2.2.1 常量与符号常量,常量是指在程序运行中,其数值不能被改变的量。,常量又可分为直接常量和符号常量。,2.2 常量与变量,120、-100、0;,0120、072;,0 xFFFF、0 x1e、0X28AF,0XED4;,120,L,200L,;,长整型常量,3.14、-3.1、5.12,E-6,;,a,、,#,、,n,、,101,;,099、12f、0 xg、48EA;,019.5、1e-08;实型常量只能用十进制形式表示,2.1,E10.2,、,E-6,、6.4E+4.8、E9,;,changsha,、,+?ab,;,、,p,、,、,ab,;,1、,直接常量:,是在程序中直接引用的数据。,请判断这些常量正确与否:,定义形式:,#,define,标识符,常量数据,例如,:,#,define P,I,3.14159,在程序预处理时,凡是出现标识符PI的地方都将用,数据3.14159来替换。,如:2*2.3*,P,I,就,等价于 2*2.3*3.14159。,变量是指,以标识符为名字,其值可以改变的量。,变量代表计算机内存中的某一存储空间,该存储空间,中存放,的数据就是变量的值。,在同一程序块中,,变量,不能被重复定义。,使用变量时必须,“,先定义,后使用,”,。,2、,符号常量,是,用标,识符来表示一个数据;,在程序不能给它赋值。,2.2.2 变量与变量定义,1、变量定义语句:,类型标识符,变量名,1,变量名2,;,自己设定,满足标识符的规定。,如:int,float,char,;不可省,2、,变量赋初值,在定义变量的同时给变量一个初始值。,注意,int a=5,b=3;,int a=b=c=3;,int a,b,c;a=b=c=3;,例如:,int a,b,c;,float x,y;,char c1,c2;,或 int c1,c2;,定义变量就是在内存中划出一块相应类型的存储空间存放该变量的值。,main(),int x,y,z,w;/*定义x,y,z,w为整型变量*/,unsigned int k;/*定义k为无符号整型变量*/,x=10;y=-20;k=30;,z=x+k;w=y+k;,printf(,“,x+k=%d,y+k=%dn,”,,z,w);,例2-1,整型变量定义及赋初值,程序运行结果为:,x+k=40,y+k=10,3、变量的作用域,变量根据作用域的不同可分为,局部变量,和,全局变量,,根据存储方式的不同可分为,静态存储变量,和,动态存储变量,,这些我们将在第六章中详细介绍。,在数学里当多个运算符一起组成一个表达式时,我们规定了,优先级,(先乘除后加减)和,结合规则,(从左至右)。,同样,在C语言中,我们也规定了每个运算符的结合规则及运算符之间的优先级。,2.3 运算符与表达式,运算符:就是表示某种运算功能的符号。,按操作功能运算符大致可分为:,算术运算符、关系运算符、逻辑运算符、赋值运算符、,条件运算符、逗号运算符以及,按位运算符,等。,表达式:是由操作数和运算符组成的序列。,如:1+2*3-4、35-7、a=b%2 等都是C语言中的表达式。,下面分类介绍各种运算符:,%(取余)(注意:取余运算的操作数只能是整数,且结,果的符号与前一操作数的符号相同),2.3.1 算术运算符与算术表达式,1、运算符,+(加):3+4、+3,-(减):3-5、-5,*(乘):3*5,/(除):5/2、5.0/2(注意,此二种形式,结果不同),5%3的值为2;-5%3的值为-2;,5%(-3)的值为2;-5%(-3)的值为-2;,12.3%3,若a%b 的结果为0,则有a能被b整除,2、算术表达式,用算术运算符和括符将操作数连接起来的式子。,优先级:()*、/、%+、-,结合性:从左至右;,表达式的值:,数值型(int、long、unsigned、float、double);,例如:,已知:float a=2.0;,int b=6,c=3;,求解:a*b/c-1.5+,a,+fabs(-5)=,?,float a=2.0;int b=6,c=3;,a*b/c-1.5+,a,+fabs(-5),12.0,/3,5,4.0,-1.5,2.5,+97(int),99.5,+5,104.5,(double),思考 int a=1,b=2;,表达式a/b+3的结果是多少?,int a=10000,b=30000;,表达式a+b的结果是多少?,如何修改?,double float,unsigned long,long,unsigned int,int char,short,等价于:j=i;i+;所以i的值为4,j的值为3,等价于:i+;j=i;所以i的值为4,j的值为4,(1)i=3;,j=i+;,(2)i=3;,j=+i;,自增与自减运算符,(+、,-,),+i,-i:使用之前使i的值增1(或减1);,i+,i-:使用之后使i的值增1(或减1);,分析下面几种情况中i与j的值:,当+、,-不与其他运算符混合使用时,+i与i+都等价于,i=i+1,-i与i-都等价于 i=i-1,如:i=2;,j=-i+;求执行完这两句后i与j的值分别是多少,特殊的:设i=3,j=4,k=i+j,k=i=j=,结合性:自右至左。,分析:,“,+,”,与,”,-,“,是同优先级,且都高于,“,=,”,按结合规则,等价于:j=-(i+);,结果:i的值为3,j的值为-2。,再看几个例子:,如:设i=3,k=(i+)+(i+)+(i+)k=i=,9,6,如:设a=3,b=(a+)+(a+)b=a=,6,5,设a=3,b=(+a)+(a+)b=a=,8,5,设a=3,b=(a+)+(+a)b=a=,8,5,设a=3,b=(+a)+(+a)b=a=,10,5,7,4,4,例如,:(1)x=(y=12)/4,(2)x=y=12/4,(3)x=(y=12/4),(4)(x=y)=12/4,2.3.2 赋值运算符与赋值表达式,1、赋值运算符 =,(执行功能:把=右边的表达式的值,存入=左边的,变量,对应的存储空间,即给此变量赋值)3=2+1 a=a+2,2、赋值表达式:,用赋值运算符将变量和表达式连接起来的式子,形式:=,求值规则:,将,“,=,”,右边表达式的值赋给左边的变量。,优先级:!,算术,关系,&,|,赋值,结合律:自右至左;,表达式的值:被赋值变量的值。,y值为12,x值为3,表达式的值为3,y值为3,x值为3,表达式的值为3,y值为3,x值为3,表达式的值为3,练习:,设a=12,计算表达式a+=a-=a*12和a+=a-=a*=12的值,3、复合赋值运算符,*=、/=、%=、+=、-=,=,&=、=、,=,复合运算符是一个运算符,但功能上
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!