C语言第三章数据类型.pptx

上传人:莉*** 文档编号:87593366 上传时间:2023-04-16 格式:PPTX 页数:54 大小:420.43KB
返回 下载 相关 举报
C语言第三章数据类型.pptx_第1页
第1页 / 共54页
C语言第三章数据类型.pptx_第2页
第2页 / 共54页
点击查看更多>>
资源描述

《C语言第三章数据类型.pptx》由会员分享,可在线阅读,更多相关《C语言第三章数据类型.pptx(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、目标理解变量和常量的含义熟悉基本数据类型-int、char、float 和 double使用算术运算符理解类型转换熟练掌握自增和自减运算熟练掌握复合赋值表达式第1页/共54页3.13.1 C C的数据类型C C数据类型指针类型空类型void定义类型typedef构造类型枚举类型enum数组结构体struct共用体union基本类型字符类型char整 型实型单精度型float双精度型double短整型short长整型long整型int数据类型决定:1.数据占内存字节数2.数据取值范围3.其上可进行的操作返回第2页/共54页基本数据类型类型符号关键字数的表示范围所占位数整型字符型实型有无(sign

2、ed)int16-3276832767(signed)short16-3276832767(signed)long32-2147483648214748364716unsigned int0655353204294967295unsigned longunsigned short16065535有float323.4e-383.4e38有double641.7e-3081.7e308有char8-128127无unsigned char80255说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例第3页/共54页3.2 3.2 常量与变量标识符定义:用来标识变量、常量、函数等

3、的字符序列组成:只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线大小写敏感不能使用关键字 讨论:判断下列标识符号合法性sumSumM.D.JohndayDate3days student_name#33lotus_1_2_3charababove$123 _toDayM.D.John3days#33char$123ab返回第4页/共54页长度:Turbo C中最长32个字符命名原则:p见名知意,采用简洁有含义的英文单词(或缩写)p不宜混淆 如l与I,o与0 标识符命名实例stu_name,sum,total,day,count,sort第5页/共54页常量在程序运行过程中,其值不能

4、改变的量称为常量常量可为任意数据类型字面常量(直接常量)p整型:12、0、-3p实型:4.6、-1.23p字符型:a、dp字符串常量:”Hello”、”Good Morning!”第6页/共54页符号常量:标识符代表常量定义格式:#define 符号常量定义举例#define PI 3.1415926#define STAR*说明:符号常量一般使用大写英文字母表示,以区别一般用于小写字母表示的变量。第7页/共54页符号常量使用#define PRICE 30main()int num,total;num=10;total=num*PRICE;printf(total=%d,total);运行结

5、果:total=300符号常量的使用能给程序员带来哪些好处?第8页/共54页变量其值可以改变的量称为变量变量也可以为任意数据类型变量定义的一般格式数据类型 变量1,变量2,变量n;决定分配字节数和数的表示范围变量定义举例:int a,b,c;float data;第9页/共54页变量的使用:作强制定义,也就是“先定义,后使用”例1 int student;stadent=19;/Undefined symbol stadent in function main 例2 float a,b,c;c=a%b;/Illegal use of floating point in function mai

6、n 第10页/共54页变量程序内存编写程序时,常常需要将数据存储在内存中,方便后面使用这个数据或者修改这个数据的值。通常使用变量来存储数据。使用变量可以引用存储在内存中的数据,并随时根据需要显示数据或执行数据操纵。存储 RateRate*5%将值存储为DiscAmtRate-DiscAmt100.5将值存储为Result9.5第11页/共54页声明和使用变量声明变量:Datatype variablename;定义时初始化变量:Datatype variablename=value;定义后初始化变量:variablename=value;给变量赋值,除了给一个直接的值以外,还可以通过计算获得。

7、第12页/共54页变量命名在 C 语言中,变量命名需要遵循一定的规则有效名称有效名称principalcost_pricemarks_3lastnamecity无效名称无效名称123ratecurrency$discount%zip code变量的命名规则:变量名可以由字母、数字和 _(下划线)组合而成变量名不能包含除 _ 以外的任何特殊字符,如:%、#、逗号、空格等变量名必须以字母或 _(下划线)开头变量名不能包含空白字符(换行符、空格和制表符称为空白字符)C 语言中的某些词(例如 int 和 float 等)称为保留字,具有特殊意义,不能用作变量名C 语言区分大小写,因此变量 price

8、与变量 PRICE 是两个不同的变量第13页/共54页整型数据整型常量形式表示方式举例十进制整数由数字09和正负号表示123,-456,0八进制整数由数字0开头,后跟数字07表示0123,011十六进制整数由0 x开头,后跟09,af,AF表示0 x123,0Xff问题:0123 =()100 x123=()100Xff =()10 3.3 整型数据返回第14页/共54页整型常量的类型p根据其值所在范围确定其数据类型p在整常量后加字母l或L,认为它是long int 型常量例 12 与 12L例30000 为int型65536 为long int型第15页/共54页整型变量p整型变量在内存中以

9、二进制的形式存放p根据占用的字节数不同,分为不同类别第16页/共54页p整型变量的定义整型变量定义举例:int a,b;unsigned short c,d;long e,f;例:main()int a,b,c,d;unsigned u;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%dn”,c,d);运行结果:a+u=22,b+u=-14第17页/共54页实型数据实型常量p表示形式:十进制数形式:(必须有小数点)指数形式:(e或E之前必须有数字;指数必须为整数)实型常量的整数部分为时可以省略,且E或e后面指数必须为整数。十进制数形式实型常量0.

10、123,.123,123.0,0.0,123.指数形式实型常量12.3e3,123E2,1.23e4,e-5 ,1.2E-3.5,.e33.4 3.4 实型数据返回第18页/共54页实型数据实型常量p规范化的指数形式:即在字母e(或)之前的数据部分中,小数点左边有且仅有一位非零的数字。指数形式实型常量12.3e3,123E2,1.23e4,0.123e-3第19页/共54页p实型常量的类型实型常量部分float和double型,一个实型常量可以赋给一个float型或double型变量。根据变量的类型截取实型常量中相应的有效数字。float a;a=111111.111double a;a=11

11、1111.111问题:以下两段程序代码,是否有区别?第20页/共54页实型变量pfloat:占4字节,提供7位有效数字pdouble:占8字节,提供1516位有效数字第21页/共54页基本数据类型数据属于不同类别AfricaThe quick brown foxTRUE数据 非数值数值整型非整型9002.129999/12/20032.175123Jackie Chanchar数据类型非数值数值整型intshort intlong intdoublefloat非整型第22页/共54页3.53.5 字符型数据字符常量字符变量字符串常量返回第23页/共54页字符常量字符常量定义:用单引号括起来的单

12、个普通字符或转义字符。字符常量的值:该字符的ASCII码值转义字符:反斜线后面跟一个字符或一个代码值表示如 a A?n 101如 A65,a97,048,n10转义字符及其含义:转义字符含义nvradddtbf“xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符如 101 -A 012 -n 376 -x61 -a 60 -0 483 -()例:A-101-x41-65例 转义字符举例(ch2_001.c,ch2_004.c)main()printf(101 x42 Cn);printf(I say:How are you?n

13、);printf(C Programn);printf(Turbo C);运行结果:(屏幕显示)A B CIsay:”How are you?”C ProgramTurbo C例 main()printf(“Yb=n”);运行结果:屏幕显示:=打印机输出:第24页/共54页注意事项:p单撇号中的字符不能是或者p一个字符占一个字节,存其对应的ASCII码p思考:9和9的区别p字符型数据可像证书一样在程序中参与相关的运算a 32 结果为65第25页/共54页字符变量字符变量存放字符ASCII码char与int数据间可进行算术运算例1 a=D;/*a=68;*/x=A+5;/*x=65+5;*/s=

14、!+G /*s=33+71;*/例2 main()char c1,c2;c1=97;c2=98;printf(“%c%d”,c1,c2);第26页/共54页/*ch2_003.c*/#define PRICE 12.5 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例子第27页/共54页字符串常量定义:用双引号(“”)括起来的字符序列存储:每个字符串尾自

15、动加一个 0 作为字符串结束标志字符常量与字符串常量不同h e l l o 0例 字符串“hello”在内存中例 空串 “”0a a 0例 a“a”例:char ch;ch=A;例:char ch;ch=“A”;没有字符串变量,用字符数组存放第28页/共54页编译程序根据变量定义为其分配指定字节的内存单元.地址int a=1,b=-3,c;abc2字节2字节2字节地址地址.内存1-3随机数如果定义了变量,但是没有对它赋初值,则它的值是一个不确定的数值3.6 变量赋初值返回第29页/共54页例main()int x,y;printf(“%d,%d”,x,y);运行结果:64,3129第30页/共

16、54页3.7 3.7 各类数值型数据间的混合运算隐式转换什么情况下发生p运算转换-不同类型数据混合运算时p赋值转换-把一个值赋给与其类型不同的变量时p输出转换-输出时转换成指定的输出格式p函数调用转换-实参与形参类型不一致时转换a 32 int age;age=11.1char name=a;printf(“%dn”,name);返回第31页/共54页运算转换规则:不同类型数据运算时先自动转换成同一类型。doublefloatlongunsignedintchar,short低高说明:必定的转换运算对象类型不同时转换第32页/共54页 char ch;int i;float f;double

17、d;ch/i +f*d -(f+i)intintdoubledoublefloatdoubledoubledouble例intintdoubledoubledoubledoubledoubledouble10+a +i*f -d/l例2 int i;float f;double d;long l;第33页/共54页显示转换可以利用强制类型转换将一个表达式转换成所需类型一般形式:(类型名)(表达式)例:(int)(x+y)(int)x+y (double)(3/2)(int)3.6 说明:强制转换得到所需类型的中间变量,原变量类型不变 第34页/共54页例 main()float x;int i

18、;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);较高类型向较低类型转换时可能发生精度损失问题结果:x=3.600000,i=3第35页/共54页3.8 算术运算符和算术表达式C运算符简介C运算符算术运算符:(+-*/%+-)关系运算符:(=!=)逻辑运算符:(!&|)位 运 算 符:(|&)赋值运算符:(=及其扩展)条件运算符:(?:)逗号运算符:(,)指针运算符:(*&)求 字 节 数:(sizeof)强制类型转换:(类型)分量运算符:(.-)下标运算符:()其它 :(()-)学习运算符应注意学习运算符应注意 运算符功能 与运算量关系 要求运算量个数 要求运算

19、量类型 运算符优先级别 结合方向 结果的类型返回第36页/共54页基本的算术运算符+加法运算或正值运算符-减法运算或负值运算符*乘法运算符/除法运算符,求商,两个整数相除结果为整数%模运算符,求余,要求两则均为整型数据3+5、+35-2、-33*55/37%4第37页/共54页例 5/2 =-5/2.0=例 5%2 =-5%2 =5%-2 =1%10 =5%1 =5.5%22-2.51-110()1取模的余数符号由分子(被除数决定)第38页/共54页算术表达式和运算符的优先级和结合性算术表达式:用算术运算符和括号将运算对象连接起来的、符合C语法规则的式子。求表达式的值:p先按运算符的优先级别高

20、低次序执行;p再一个运算对象两则的运算赋的优先级别相同,则按规定的“结合方向”处理。a*b/c-1.5+aa b*c/d第39页/共54页自增+、自减运算符作用:使变量值加1或减1种类:p前置 +i,-i (先执行i+1或i-1,再使用i值p后置 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第40页/共54页注意说明:p只能用于变量

21、,不能用于常量或表达式;p结合方向“自右向左”;p优先级别:-+-*/%-+-p自增(减)运算常用于循环语句中循环变量自动加(减)1或指针变量,使指针指向下一个地址5+()(a+b)+()i+()例例1 1解答解答:-i+-(i+)i=3;printf(“%d”,-i+);/-3 例例1:-i+i=3;printf(“%d”,-i+);例例2 2:j+k;(j+)+k;第41页/共54页有关表达式使用中的问题说明表达式中包含多个自加、自减运算时,很容易出错例例1 1:如如i3,则,则ki结果:结果:k3,i4例例2 2:如如i3,则,则(i+)+(i+)+(i+)结果:结果:9,i6例例3 3

22、:如如i3,则,则(+i)+(+i)+(+i)结果:结果:18,i6第42页/共54页i+j,应如何结合?调用函数时,实参数地求值顺序,c并无统一规定C编译在处理时尽可能多地(自左而右)将若干个字符组成一个运算符。所以应该为(i+)+j举例:如i3,则printf(“%d,%d”,i,i+)解答:若对参数的求值顺序为自右而左,打印4,3 且 i=4;若对参数的求值顺序为自左而右,打印3,3 且 i=4;第43页/共54页3.9 赋值运算符和赋值表达式简单赋值运算符“”作用:将一个数据赋给一个变量常量或表达式只能是变量,不能是常量或表达式例 3=x-2*y;a+b=3;例 a3;a(a+b)*c

23、返回第44页/共54页赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型例1 float f;int i;i=10;f=i;则 f=10.0例2 int i;i=2.56;/结果i=2;第45页/共54页实型数据赋给整型变量舍弃实数的小数部分整型数据赋给实型变量补足有效位数字字符型数据赋给整型变量分别考虑系统将字符处理为无符号的量和带符号的量两种情况带符号的整型赋给long int型变量注意符号扩展问题unsigned int型数据赋给long int型变量注意最高位为1的情况非unsigned型数据赋给长度相同的unsigned型变量原样照搬,连同原有的符号位第46页/共54页结合

24、方向:自右向左优先级:14例: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第47页/共54页复合的赋值运算符+=-=*=/=%=&=|=a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3第48页/共54页赋值表达式定义:由赋值运算符将一个变量和一个表达式连接起来的式子,叫赋值表达式。一般形式:赋值表达式的值与变量值相等,且可嵌套例:a=12;a+=a-=a*a/a=

25、-264 等价于a=a+(a=a-(a*a)例:int a=2;a%=4-1;a+=a*=a-=a*=3;/a=0 等价于a=a+(a=a*(a=a-(a=a*3)第49页/共54页3.10 逗号运算符和逗号表达式形式:表达式1,表达式2,表达式n结合性:从左向右优先级:15逗号表达式的值:等于表达式n的值返回第50页/共54页例1 a=3*5,a*4 a=3*5,a*4,a+5例2 x=(a=3,6*3)x=a=3,6*a例3 a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,%d”,(a,b,c),b,c);例4 printf(“%d,%

26、d,%d”,a,b,c);printf(“%d,%d,%d”,(a,b,c),b,c)/a=15,表达式值60/a=15,表达式值20/赋值表达式,表达式值18,x=18/逗号表达式,表达式值18,x=3/1,2,3/3,2,3/其中逗号起分隔作用/其中逗号为逗号运算符第51页/共54页总结 1常量是在程序中不能被更改的值;而变量在程序中可以被更改的,通过变量可以引用存储在内存中的数据;C语言中的基本数据类型包括整型、单精度浮点型、双精度浮点型和字符型;整型分为短整型、整型、长整型,每种整型又可分为有符号型和无符号型;第52页/共54页总结 2单精度浮点型和双精度浮点型变量可以存储实数,但双精度型取值范围要比单精度型大的多;字符型变量可以存储单个字符,其值是该字符的ASCII 码;算术运算符提供运算功能,包括+、-、*、/、%、+和-。第53页/共54页感谢您的欣赏!第54页/共54页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁