第三章数据类型运算符精选文档.ppt





《第三章数据类型运算符精选文档.ppt》由会员分享,可在线阅读,更多相关《第三章数据类型运算符精选文档.ppt(64页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章 数据类型运算符本讲稿第一页,共六十四页3 31 1 数据与数据类型数据与数据类型3.1.1 什么是数据和数据类型 数据数据是程序加工、处理的对象,也是加工的结果。数据类型数据类型是程序语言中具有同样的性质的数据集合.整型整型int(integer的缩写)的缩写)字符型字符型 char (character的缩写)的缩写)单精度型单精度型 float 基本类型基本类型 实型实型(浮点型)(浮点型)双精度型双精度型 double 数组类数组类数据类型数据类型 构造类构造类 结构体结构体 struct 共用体共用体 union 枚举类枚举类 enum 指针类指针类 空类型空类型 void本讲
2、稿第二页,共六十四页3.2 C语言的基本数据类型及其表示3.2.1 常量与变量1 1常量常量在程序运行中其值不能被改变的量常量区分为不同类型。如 123,456:整型常量 a,A,b,1,0:字符常量 123.0,3.5:实型常量“123”,“A”:字符串常量本讲稿第三页,共六十四页例3_1 已知圆半径r,求圆面积和周长的值。#define 3.14159main()int area,perimeter;int r;r=3;area=*r*r;perimeter=2*r;printf(“area=%dn”,area);printf(“perimeter=%dn”,perimeter);v符号P
3、I代替常量3.14159,称为符号常量v符号常量的定义是在编译预处理语句里进行的,称为宏定义v符号常量一般用大写 v符号常量在其作用域内值不能改变(不能被赋值)PI=35;v符号常量在编译时被常量替换 2.符号常量用一个标识符代表一个常量,提高程序的可修改性和灵活性。定义格式:#define 标识符 常量本讲稿第四页,共六十四页3.变量(1)变量:其值可以改变的量。在内存中占据存储单元,在该单元中存放变量的值,必须先定义,后使用。3num90_above*total房间名:变量名(标识符)房间内容:变量值 程序里的一个程序里的一个变量变量可以看成是可以看成是个个存储数据的容器存储数据的容器,它
4、的功能,它的功能就是可以存储数据。就是可以存储数据。本讲稿第五页,共六十四页变量的定义格式:类型说明符类型说明符 变量名表;变量名表;定义的变量名称最好和存放数据的意义对应。例:int a,b,c;/*说明a,b,c为整型变量*/char cc;/*说明cc为字符变量*/double x,y;/*说明x,y为双精度实型变量*/本讲稿第六页,共六十四页#define PRICE 30 main()int num,total;num=3;total=num*PRICE;printf(“total=%dn”,total);num=4;total=num*PRICE;printf(“total=%dn
5、”,total);90numtotal对变量的基本操作有两个:1.“赋值”:向变量中存人数据值。2.“取值”:取得变量当前值、以便在程序运行过程中使用。34120*同一个变量一旦重新赋值,原来的值就不再存在。本讲稿第七页,共六十四页3.2.2 整型数据及其表示1.整型类型整型数据存储示意图:基本型 属性_占据内存单元数属性2_数据最高位意义intshort 2bytes(短)signed 有符号long 4bytes (长)unsigned 无符号本讲稿第八页,共六十四页取值范围:数据类型占据字节数二进制位取值范围int2Bytes16-3276832767(-215215-1)shortin
6、tsignedintsignedshortintunsignedint065535(0216-1)unsignedshortintlongint4Bytes32-21474836482147483647(-231231-1)signedlongintunsignedlongint04294967295(0232-1)本讲稿第九页,共六十四页2.2.整型常量整型常量十进制:123,-456,0八进制:以0开头(零),01,012 0123=(123)8=(83)10十六进制:以0 x开头,0 x123=(123)16=(291)10 0 xF=(f)16=(15)10长整型常量:123L,-45
7、6l二进制位(bit):计算机中最小的存储信息单位 字节(Byte):八个二进制位组成的存储单元,是 计算机中最小存取信息单位机器字(word):计算机中存取信息的基本单位,不 同的计算机系统它的长度是不同的本讲稿第十页,共六十四页补充:数的存放形式补码1.正数不变2.负数各位取反后+1,符号位置1 (34)10 10=(0 0100010)2 (-34)10 10=(1011101)2 +1 (1 1011110)2 4bytes数据 x补码4294967295x+1(-34)10补码:(4294967295341)10(4294967262)10=(ffffffdf)16=(1111111
8、1111111111111111111011110)22bytes数据 x补码65535x+1(-34)10补码:(65535341)10=(65502)10=(ffdf)16 =(1111 1111 1101 1110)2本讲稿第十一页,共六十四页变量的定义格式:类型说明符 变量名表;4.整型数据应用中的几个问题一般放在一个函数的开头部分3.整型变量本讲稿第十二页,共六十四页问题问题1 1:c c没有定义便使用;没有定义便使用;int c;问题问题2 2:c c应为应为 32770 32770,但实际,但实际 为为 3276632766,发生溢出;,发生溢出;问题问题3 3:c c应为应为l
9、ong int long int 类型;类型;long int c;本讲稿第十三页,共六十四页3.2.3 3.2.3 实型数据及其表示实型数据及其表示1.实型类型 实型数据是以浮点数形式存储的,在计算机中按指数形式。如图例:0.12345610-224位(带符号)8位(带符号)(float)(double)(long double)本讲稿第十四页,共六十四页2.实型常量v十进制形式:由数字和小数点组成;如:0.123,0.0,-54.0v指数形式:由十进制小数形式指数;如:123e3,123E-2 注:注:e e或或E E的前后面须有数字的前后面须有数字 不合法的指数形式:e3,2.1e3.5
10、,.e3,ev在实数常量尾部用后缀符 f(F)代表单精度实数(7位有效位),l(L)代表双精度实数(1819位有效位);例:2.3f,-0.123f,2e-3f,-1.5e4f 为单精度实常量 1256.34L,-0.123l,2e3L 为双精度实常量3.实型变量本讲稿第十五页,共六十四页4.4.实型数据应用中的误差问题实型数据应用中的误差问题由于机器存储限制,会使实数产生误差理想输出:理想输出:a=12345.6789a=12345.6789,b=0.1234567891234567899e15b=0.1234567891234567899e15实际输出:实际输出:a=12345.67871
11、1,b=123456789123456.797000本讲稿第十六页,共六十四页3.2.3 字符型数据及其表示1.字符型数据 字符型数据在计算机中存储的是ASCII码,占用1 byte。(1)字符“A”的存储形式实际上就是一个整型数65;(2)它可以直接与整型数据进行算术运算、混合运算,与整型变量相互赋值,(3)字符型数据以字符或整数两种形式输出。以字符形式:先将ASCII码值转换为相应的字符,再输出;以整数形式:直接将ASCII的值作为整数输出。本讲稿第十七页,共六十四页n 换行(LF)t 横向跳格(HT)b 退格(BS)v 竖向跳格 f 走纸换页(FF)r 回车(CR)单引号()反斜杠字符(
12、)”双引号(“)0,空(不是0)101 字符A(八进制)x41 字符A(十六进制)2.2.字符字符型常量:型常量:用单引号括起来的一个字符:用单引号括起来的一个字符:普通字符:普通字符:a a,A A ,1 1 等等 (大小写不同大小写不同)转义序列:将反斜杠转义序列:将反斜杠()()后面的字符转变为另外的含义。后面的字符转变为另外的含义。是一种特是一种特殊的字符常量殊的字符常量。用的最多用的最多3.字符型变量:类型名称char:*错误的字符常量表示:,015,n,”A”,ab本讲稿第十八页,共六十四页“How do you do.”“CHINA”“$123.45”“a”4.4.字符串常量:字
13、符串常量:一对双引号双引号括起来的字符序列注意:lC规定:每个字符串结尾加一“字符串结束字符串结束”(00)系统自动加上的;“CHINA”:l字符串如果需要存放在变量中,需用字符数组来存放(第7章)C H I N A0字符串结束标志v a与“a”不同aaa 0“a”本讲稿第十九页,共六十四页5.5.字符数据的应用举例字符数据的应用举例main()int i;char c;i=a;c=97;printf(“%c,%dn”,c,c);printf(“%c,%dn”,i,i);输出结果:a,97 a,97注意:在一定范围内通用注意:在一定范围内通用(0-127)(0-127)本讲稿第二十页,共六十四
14、页3.2.5 3.2.5 指针型数据及其表示指针型数据及其表示v变量与地址的概念程序中:inti=12;floatk;内存中每个字节有一个编号-地址内存编译或函数调用时为其分配内存单元变量是对程序中数据存储空间的抽象变量的地址.20002001200220050000200320043000i122000变量i_pointerk随机指针变量指针型数据:是一个变量在内存中所对应的存储单元的地址值。如2000,2002等,指针变量:用来存放另一存储单元的地址值。本讲稿第二十一页,共六十四页2.2.指针变量的定义合法标识符指针的目标变量的数据类型表示定义指针变量不是*运算符例 int*p1,*p2;
15、float*q;staticchar*name;注意:1、int*p1,*p2;与int*p1,p2;2、指针变量名是p1,p2,不是*p1,*p23、指针变量只能指向定义时所规定类型的变量4、指针变量定义后,变量值不确定,应用前必须先赋值格式:类型说明符 *变量名;本讲稿第二十二页,共六十四页3.6.1&与*运算符含义:*取指针变量所指向单元的内容&取内存变量的地址 互为逆运算特性:单目运算符 优先级为 2 自右向左结合inti;int*pc;pc-指针变量,它的内容是地址量*pc-指针的目标变量,它的内容是数据&pc-指针变量占用内存的地址.200020010000.3000指针变量pc,
16、用&pc表示地址3000i整型变量i用&i表示地址20002000通过pc=&i将地址2000存入pc的单元中12通过*pc=12存入变量i的单元中200012pci,*pc&pc&i可简单画为:本讲稿第二十三页,共六十四页3.2.6 变量的初始化 通常一个变量是先说明,然后再赋值给它。例:int x,y;x=10;b=20;C规定:可以在定义定义变量的同时使变量初始化初始化,例:float x123.45;/*说明x为实型量且赋初值为123.45*/int a,c=10;/*说明整型变量a,c,并仅给c赋初值10*/int a1=10,b1=6;/*说明整型变量a1,b1;分别赋不同初值*/
17、double Pai=3.14;/*说明Pai为双精度实型变量为赋初值为3.14*/char cha;/*说明字符变量ch,并赋初值为a*/注意注意:对几个变量赋同一个值,必须分别赋值 例:int a=b=c=3;error int a=3;b=3;c=3;ok 说明:变量初始化不是在编译阶段编译阶段完成的而是在程序执行阶段执行阶段执行 本函数时赋以初值的 例:int a=3;int a;a=3;例:int a,b,c=5;int a,b,c;c=5;本讲稿第二十四页,共六十四页变量初始化的应用举例变量初始化的应用举例main()int a;int b;b=a+2;printf(“%d,%dn
18、”,a,b);注意:定义的变量在没有初始化之前有一个不确注意:定义的变量在没有初始化之前有一个不确注意:定义的变量在没有初始化之前有一个不确注意:定义的变量在没有初始化之前有一个不确 定值。定值。a=3;本讲稿第二十五页,共六十四页3.3 算术运算与赋值语句3.3.1 c语言中的运算规则1、运算符 分类分类(按操作数个数分):单目运算:一个运算符连接一个运算对象;(a;!a;+a)双目运算:一个运算符连接两个运算对象;(2312)三目运算:一个运算符连接三个运算对象;ab?a=1:a=-1本讲稿第二十六页,共六十四页分类分类(作用作用):算术运算符算术运算符 +-*/%+-*/%自增自减运算符
19、 +-+-赋值与赋值组合运算符赋值与赋值组合运算符 =+=-=*=/=%=|=&=+=-=*=/=%=|=&=关系运算符 =!=逻辑运算符&|!位运算符|&条件运算符?:逗号运算符逗号运算符 ,指针运算符 *&求字节数运算符 size of 强制类型转换运算符强制类型转换运算符 (类型类型)分量运算符 .-下标运算符 其它 ()本讲稿第二十七页,共六十四页2 2、表达式表达式算术表达式 a+b -c自增自减表达式 i+-i关系表达式 a!=b (a+b)(a-b)逻辑表达式 a&(b=c)!a字位表达式 a 2 a&b赋值表达式 a=3 a*=2 a=b=6 逗号表达式 (a+b,a-b)3、
20、优先级和结合性(附录A)优先级:同一表达式中不同运算符进行计算时的先后次序 结合性:针对同一优先级的多个运算符而言,指同一表达式 中相同优先级的多个运算应遵循的运算次序。本讲稿第二十八页,共六十四页表达式运算时的关键问题:表达式运算时的关键问题:表达式运算时的关键问题:表达式运算时的关键问题:(1)算符优先极问题(不同级别算符的计算次序)(2)算符结合次序(优先级平级时的计算次序)(3)算符操作数个数(一目或二目算符)(4)算符对应操作数类型3.3.2 算术运算符和算术表达式1、算术运算符本讲稿第二十九页,共六十四页说明:“+”,“-”运算符单目运算:取正、负值运算;优先级高 双目运算:加、减
21、运算;优先级低除法运算“/”整数(字符)相除结果是整型(商),小数部分全部舍去 实数相除,所得的商也为实数。例如:1/3=0 只取结果的整数部分0,舍去0.333333 15/43 只取结果的整数部分3,舍去0.75 1.0/30.333333 13/4.03.250000 整数相除时,若不能整除将造成误差,要避免整数直接相除。模运算%也称为求余运算。要求两个运算对象都为整型,其结果是整数除法的余数。例如:5%10=5 10%3=1 -10%3-1本讲稿第三十页,共六十四页 算术运算符的优先级及结合性如下:算术运算符的优先级及结合性如下:例如表达式 x/(67-(12+y)*a)x/(67-(
22、12+y)*a)的运算顺序是:2、算术表达式 c语言的算术表达式由算术运算符、常数、变量、函数和园括号组成,其基本形式与数学上的算术表达式类似。例如:3十5 12.3423.65*2 -5*(18%4+6)x/(67-(12+y)*a)本讲稿第三十一页,共六十四页 带函数调用的算术表达式。以数学函数的调用为例,c语言把数学计算中常用的计算公式(或算法)抽象定义为一个个的函数,这些函数的集合构成了C语言的数学库(见附录c),在程序中用到相应的函数时只要直接调用即可。例如,数学表达式:sin(x)+cos(y/2)c语言算术表达式:sinsin(x)+coscos(y/2)函数库:(#includ
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三章 数据类型运算符精选文档 第三 数据类型 运算 精选 文档

限制150内