C语言程序设计-谭浩强-第3章C语言的基本数据类型与表达式

上传人:wan****21 文档编号:245670678 上传时间:2024-10-09 格式:PPT 页数:32 大小:607KB
返回 下载 相关 举报
C语言程序设计-谭浩强-第3章C语言的基本数据类型与表达式_第1页
第1页 / 共32页
C语言程序设计-谭浩强-第3章C语言的基本数据类型与表达式_第2页
第2页 / 共32页
C语言程序设计-谭浩强-第3章C语言的基本数据类型与表达式_第3页
第3页 / 共32页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第三章,数据类型、运算符与表达式,C,语言的基本数据类型,常量与变量,运算符和表达式,不同类型数据间的运算及转换,数据的描述规则,数据的操作规则,本章要点,1,3.1 C的基本数据类型,在C语言编程中,涉及两个基本问题:一个是数据的描述,一个是数据处理的描述。,数据的描述,,决定使用数据的,数据类型,及,存储方式,、,使用范围和条件,。,数据处理的描述,决定数据的使用过程。,计算机中的数据不单是简单的数字,所有计算机处理的数据,包括文字、声音、图像、等都是以一定的数据形式在内存中存储的,其存储形式由,数据类型,决定。,2,C的数据类型总表,C的,数,据,类,型,基本类型,构造类型,指针类型,空类型 void,定义类型 typedef,字符类型char,枚举类型enum,整 型,实型,单精度型float,双精度型double,数组,结构体struct,共用体union,短整型short,长整型long,整型int,数据类型决定:,1.数据占内存字节数,2.数据取值范围,3.其上可进行的操作,3,基本数据类型,类型,符号,关键字,数的表示范围,所占字节数,整型,字符型,实型,有,无,(signed),int,4,-21474836482147483647,(signed),short,2,-3276832767,(signed),long,4,-21474836482147483647,4,unsigned,int,04294967295,4,04294967295,unsigned,long,unsigned,short,2,065535,有,float,4,3.4e-383.4e38,有,double,8,1.7e-3081.7e308,有,char,1,-128127,无,unsigned char,1,0255,说明,:数据类型所占字节数随机器环境不同而不同,上表以VC+6.0为例,4,一般用大写字母,是宏定义预处理命令,不是C,语句,直接常量,:,整型常量,实型常量,字符常量,字符串常量,如#define PRICE 30,常量,定义:程序运行时其值不能改变的量(即常数),分类,:,符号常量,:,用标识符代表常量,定义格式:,#define,符号常量 常量,例 符号常量举例,#define PRICE 30,void main(),int num,total;,num=10;,total=num*PRICE;,printf(total=%d,total);,运行结果:total=300,3.2,常量与变量,5,整型常量的类型,根据其值所在范围确定其数据类型,在,整常量后加字母,l,或,L,,,认为它是,long,int,型常量,整型常量(整常数),三种形式:,十进制整数:由数字,09,和正负号表示,.,如,123,-456,0,八进制整数:由数字,0,开头,后跟数字,07,表示,.,如,0123,011,十六进制整数:由,0 x,开头,后跟,09,af,AF,表示,.,如,0 x123,0Xff,例 12 与,12L,例 30000 为int,型,65536 为int 型,问题:,0123 =(),10,0 x123=(),10,0 xff =(),10,83,291,255,问题:,0123 =(),10,0 x123=(),10,0 xff =(),10,6,实型常量(实数或浮点数),表示形式:,十进制数形式:(必须有小数点)如,0.123,.123,123.0,0.0,123.,指数形式:(,e,或,E,之前必须有数字;指数必须为整数)如12.3,e3,123E2,1.23e4,e-5,实型常量的类型,默认,double,型,在,实型常量后加字母,f,或,F,,,认为它是,float,型,7,字符常量,定义,:,用,单引号,括起来的单个,普通字符,或,转义字符,.,字符常量的,值,:该字符的,ASCII,码值 存储形式:1字节,b _above$123,3days,#33,char,$123,ab,12,整型变量,占字节数随机器不同而不同,一般占一个机器字,shortintlong,可用,sizeof,(,类型标识符)测量,实型变量,float,:,占4字节,提供7位有效数字,double,:,占8字节,提供1516位有效数字,字符型变量,字符变量存放字符,ASCII,码,char,与,int,数据间可进行算术运算,例 float a;,a=111111.111;/*a=111111.1*/,double b;,b=111111.111;/*b=111111.111*/,例 a=D;/*a=68;*/,x=A+5;/*x=65+5;*/,s=!+G /*s=33+71;*/,没有,字符串变量,,用字符数组存放,例,main(),int x,y,z,w;,unsigned int k;,x=10;y=-20;k=30;,z=x+k;w=y+k;,printf(x+k=%d,y+k=%dn,z,w);,程序上机运行结果为:,x+k=40,y+k=10,例,void main(),char c1,c2;,c1=a;c2=b;,c1=c1-32;c2=c2-32;,printf(%c%c,c1,c2);,运行结果为:,A B,13,01,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,int,型,最大:+2147483647,最小:-2147483648,01,11,11,11,11,11,11,11,10,00,00,00,00,00,00,00,short,型,最大:+32767,最小:-32768,11,11,11,11,11,11,11,11,00,00,00,00,00,00,00,00,最大 65535,最小:0,unsigned short型,01,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,unsignedint,型,最大:4294967275,最小:0,01,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,long,型,最大:+2147483647,最小:-2147483648,01,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,Unsigned long,型,最大:4294967275,最小:0,一个字节,14,例,#define PRICE 12.5,void main(),int num=3;,float total;,char ch1,ch2=D;,total=num*PRICE;,ch1=ch2-A+a;,printf(“total=%f,ch1=%cn”,total,ch1);,宏定义,变量定义,输出结果,运行结果:,total=37.500000,ch1=d,变量的作用域:,局部变量在定义的函数内或复合语句内有效,实型数据的舍入误差,由于实型变量是由有限的存储单元组成的,因此能提供的有效数字总是有限的,在有效位以外的数字将被舍去。由此可能会产生一些误差,例:,void main(),float a,b;,a=123456,789e5;,b=a+20;,printf(%f,b);,15,3.3 运算符和表达式,C,运,算,符,算术运算符:(+-*/%+-),关系运算符:(=!=),逻辑运算符:(!&|),位运算符 :(|&),赋值运算符:(=及其扩展),条件运算符:(?:),逗号运算符:(,),指针运算符:(*&),求字节数 :(sizeof),强制类型转换:(类型),分量运算符:(.-),下标运算符:(),其它 :(()-),16,学习运算符应注意:,运算符功能,与运算量关系,要求运算量个数,要求运算量类型,运算符优先级别,结合方向,结果的类型,17,算术运算符和算术表达式,基本算术运算符:,+,-,*/%,结合方向:从左向右,优先级:,-,-,*/%,-,+-,(2)(3)(4),说明:,“-”为,单目,运算符时,右结合性,两整数相除,结果为整数,采取向,0,取整的方法,%要求两侧均为整型数据,参与运算的数中,有实数时,结果为,double,型,所有实数按,double,型运算,例 5/2 =,-5/2.0 =,例 5%2 =,-5%2 =,1%10 =,5%1 =,5.5%2,例 5/2 =,2,-5/2.0=,-2.500000,例 5%2 =,1,-5%2 =,-1,1%10 =,1,5%1 =,0,5.5%2,(,),字符型数据可以和数值型数据混合运算,18,算术表达式,用算术运算符和括号将运算对象(也称操作数)连接起来,符合C语言规则的式子;,运算对象包括常量、变量、函数等,如:,a*b+c/d,46+2*PI*R,a*,sin(x),+b*,cos(x),3班断点,19,自增、自减运算符,+-,作用:使变量值加,1,或减,1,种类:,前置,+i,-i (,先执行,i,+1,或,i-1,,,再使用,i,值),后置,i+,i-(,先使用,i,值,再执行,i,+1,或,i-1,),例 j=3;k=+j;,j=3;k=j+;,j=3;printf(“%d”,+j);,j=3;printf(“%d”,j+);,a=3;b=5;c=(+a)*b;,a=3;b=5;c=(a+)*b;,/k=4,j=4,/k=3,j=4,/4,/3,/c=20,a=4,/c=15,a=4,20,说明:,+-不能用于常量和表达式,如,5+,(a+b)+,+-,结合方向:,自右向左,优先级:-+-*/%-+-,(2)(3)(4),例-i+,-(i+),i=3;printf(“%d”,-i+);,/-3,例 j+k;(j+)+k;,例-i+,i=3;printf(“%d”,-i+);,自增、自减运算符,+-,在表达式或输出函数中的运算特例,1,、表达式中:如,(,i+)+(i+)+(i,+),2,、输出函数中:如:,printf(“%d,%d”,i,i,+),21,赋值运算符和赋值表达式,简单赋值运算符,符号:,=,格式:,变量标识符,=,表达式,作用:将一个数据(常量或表达式)赋给一个变量,复合赋值运算符,种类,:,+=-=*=/=%=,=&=|=,含义:,exp1 op=exp2,exp1=exp1 op exp2,a+=3,a=a+3,x*=y+8,x=x*(y+8),x%=3,x=x%3,例 a=3;,d=func();,c=d+2;,22,说明,:,结合方向:,自右向左,优先级,:,14,左侧必须是变量,不能是常量或表达式,例,float f;,int i;,i=10;,f=i;,则,f=10.0,例 int i;,i=2.56;/,结果i=2,;,例:a=b=c=5,a=(b=5),a=5+(c=6),a=(b=4)+(c=6),a=(b=10)/(c=2),/,表达式值为5,a,b,c值为5,/b=5;a=5,/,表达式值11,c=6,a=11,/,表达式值10,a=10,b=4,c=6,/,表达式值5,a=5,b=10,c=2,赋值转换,规则:使赋值号右边表达式值,自动,转换成其左边变量的类型,赋值表达式的值与变量值相等,且可嵌套,例:a=12;,a+=a-=a*a,/a=-264,等价于a=a+(a=a-(a*a),例:int a=2;,a%
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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