第3章数据类型、运算与表达式.ppt
《第3章数据类型、运算与表达式.ppt》由会员分享,可在线阅读,更多相关《第3章数据类型、运算与表达式.ppt(70页珍藏版)》请在三一办公上搜索。
1、1,第三章 数据类型、运算符和表达式Chapter ThreeVariables,Data Types,and Arithmetic Expressions,2,3.1 C语言数据类型,单精度型float(single precision)双精度型(double precision),基本类型Basic Type,构造类型conformation,指针类型(Pointer)空类型(Dummy),数据类型Data Type,整型(integer)字符型(character),实型(浮点型)(Real)枚举类型(enumeration),数组(Array)结构体类型(Structure)共用体类型
2、(Union),3,C字符集,4,C字符集(续),5,C字符集(续),6,3.2.1常量(Constant)1.定义:在程序执行期间,其值不发生变化的量称为常量2.类型:直接常量(Direct)又称字面常量。分为整型常量:123,-321,0,654321,+78实型常量:2.68,3.14,2.718,1.38e12单字符常量:a,C,z字符串常量:”china”,”student”,”class number”,3.2 常量与变量(Constant and Variable),7,3.2 常量与变量(Constant and Variable),符号常量(Symbol)即用一个符号代表一个
3、常量 例如:#define PI 3.1415926/预处理命令 main()float r,l,s;r=2;l=2*PI*r;s=PI*r*r;printf(“l=%d,s=%d”,l,s);编译器编译后,程序中的有关代码变成了(.obj文件,不可见)l=2*3.1415926*r;s=3.1415926*r*r;,8,说明:,符号常量必须先定义后才能用它表示一个数值。符号常量的值在其作用域内不能改变,也不能被再赋值。符号常量名习惯用大写字母表示。,9,3.2.2 变量,1.定义:程序执行期间值可以改变的量。2.命名规则:变量名由标识符表示,只能由字母、数字和下划线三种字符组成,且第一个字符
4、不得为数字。例如:下列标识符中,不合法的变量名有:M.D.John,12%gf,1add,age(每个双精度变量分配 8字节存储单元),3,a,10,在C语言中,变量之所以要强制定义,其目的:1、避免在使用时输错:int student;stadent=30;。2、每一个变量被指定为一确定的类型,在编译时就能为 其分配相应的存储单元。3、指定每一个变量为一确定的类型,在编译时据此检查 该变量所进行的运算是否合法。例如:如果有double x,y;int z;对于运算:z=x*y;在编译时系统就会提示该运算类型不匹配:warning C4244:=:conversion from double
5、to int,possible loss of data,11,选变量名时,要做到“见名知意”例如:name student_num max class sum大小写字母是两种不同的字符,C变量名习惯用小写字母表示。变量名的长度因系统而异。当用TC编译系统时,不要超过8个字符,而用Visual C+编译系统时,几乎无限制。,请 注 意,12,3.3整型数据,3.3.1整型常量的表示法十进制整数:由数字(0-9)和正负号表示 例如:123、-456、0 等八进制整数:以0开头 例如:037,0,0435,0551,0123 即(123)8=(83)10(123)8=182+2 81+3 80=(
6、83)10十六进制整数:以0 x或0X开头 例如:0X2,0 x9F,0Xbcd,0X 0 x123 即(123)16=(291)10-0 x12 即(-12)16=(-18)10,13,3.3.2 整型变量整型数据在内存中的存放形式(补码表示法:便于加减运算)int i;i=10;10=(1010)2,余数,首位,0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0,1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1,1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0,10的原码,取反,再加1,得-10的补码,10的表示法,正数的补码等于它的原码,-10的表
7、示,2,10,2,5,2,2,1,020121022123,14,计算10-10:10-10=10+(-10),0,=,10,-10,+,15,2 整型变量的分类,基本型(16位):以 int 表示(-3276832767)短整型(16位):以short int或short表示 1.类型 长整型(32位):以long int或long表示(-2.1E9L2.1E9L)无符号基本型(unsigned int)无符号型 无符号短整型(unsigned short)无符号长整型(unsigned long),一个无符号整型变量中可以存放的正数的范围比一般整型变量中正数的范围扩大一倍。unsigned
8、 int b;/*变量b的数值范围:065535*/,整型变量的字长short型2个字节byte(字长16位bit)int 型一般是2个字节long 型4个字节(字长32位)C要求 short型数据长度短于int型,int型短于long型。(short=int=long)long 型可以得到大范围的数据(-20亿20亿),但同时会降低运算速度,因此除非不得已,不要大量使用long型变量。,16,17,整型数据的溢出:main()int a,b;a=32767;b=a+1;printf(“%d,%d”,a,b);运行结果:32767,-32768改进:将变量a和b改成long型,并按%ld 格式
9、输出。但有时,系统(例如Visual C+)自动将int型变量(16位)扩展为long型变量(32位),18,整型数据的数据范围请看“ANSI标准定义的整数类型”(P43表)。注意:1、在一个整数常量后面加一个字母l或L,则认为是long 型常量。例如123456789l,9876543L 2、在一个整数常量后面加一个字母u或U,则认为是unsigned int 型常量。例如 56789U,56789u,19,3.4实型数据(Real Data),3.4.1实型常量表示形式有如下两种:十进制数形式:由数字和小数点及正负号组成。(注意:必须有小数点)例如:23.678,0.0083,-0.75,
10、435.36,+247.00也可能忽略小数点前面或者后面的数字215.,.95,-.71,+.5,.678 23.指数形式:由数字、小数点、字母e或E及正负号组成。(注:e或E之前必须有数字,其后指数必须为整数)例如:3.5E-5(3.510-5)2e3(2103)错误:E2,3.6e3.5,.e6,e,20,3.4.2 实型变量实型变量可分为:单精度(float型)如:float x,y;双精度型(double型)如:double a,b,c;说明:1.float 型变量用于存储单精度实数,在内存中占4个字节(bytes)或32 位(bits),提供67位有效数字。2.double 型变量用
11、于存储双精度实数,在内存中占8个字节(bytes)或64位(bits),提供1516位有效数字。,21,实数的存储方式与整形数据不同:符号 小数部分 指数部分 3.14159*10255对于float型10进制数,一些编译系统以24位表示小数部分,8位表示指数部分。3.一个实型常量不分float 和 double 型,一个实型常量可以赋给一个float 型或 double 型变量,并根据变量的类型截取实型常量中相应的有效位数字。,+.3 1 4 1 5 9 0 1 1 1 1 1 1 1,22,例如:main()float a,c;double b;a=123456789012345.6789
12、;b=123456789012345.6789;c=a+20;printf(“a=%fnb=%fnc=%fn”,a,b,c);输出结果:a=123456788103168.000000b=123456789012345.670000c=123456788103188.000000(避免将一个很大的数与一个很小的数相加减,以免出现舍入误差),23,3.5字符型数据(Character Data),3.5.1字符常量(Character Constant)1.用单引号括起来的一个字符 如 T,7,!2.转义字符:是一种特殊的字符常量,由反斜杠 和一个字符组成,其作用是用 将后面的字符转变为另外的意
13、义。如n 中的n 不表示字母n,而表示“换行”的意思。这是一种控制字符。,24,例如:字符含义 n 换行 t 横向跳格(水平制表符)b 退格v 竖向跳格(垂直制表符)r 回车 f 走纸换页 a 报警声 0 空字符 反斜线 单引号”双引号,25,说明:1、”ddd”与”xhh”分别表示用八进制数或十六进制数表示一个字符。例:101代表ASCII码(十进制)为65的字符A.系统中所有字符都有ASCII值(见374页)2、由于”在C语言中都有了特殊的意义,故要想在字符串中使用它们,须在其前面再加上一个反斜线。“;“;“例如,Tom said to the waiter:”Id like a cup
14、of coffee”.printf(“Tom said to the waiter:”Id like a cup of coffee”.”);3、除了前面介绍的特殊转义字符外,字母 代表字母本身。如c 代表字母 c。,26,3.5.2字符变量(Character Variable),定义形式:char 标识符1,标识符2,标识符n 例如:char c1,c2,c3,ch;c1=a;c2=b;c3=c;ch=d;说明:1、字符变量只能存储一个字符,在内存中占一个字节。2、在内存中,是把字符对应的ASCII码值放到存储单元中(0255)。3、字符型数据与整型数据之间可以通用。,27,main()c
15、har c1,c2;c1=97;/数字赋值给字符变量 c2=98;printf(“%c%cn”,c1,c2);printf(“%d%dn”,c1,c2);输出结果:a b97 98,main()int i;char c;i=a;/字符赋值给整型变量 c=97;/数字赋值给字符变量 printf(“%c,%dn”,c,c);printf(“%c,%dn”,i,i);输出结果:a,97a,97,28,3.5.4字符串常量(Character string constant),1.定义:括在一对双引号“”之内的字符序列或转义字符序列称为字符串常量。例如:“How are you!”“a”“*abcn
16、t”2.存储:字符串中的字符依次存储在内存中一块连续的区域内,并且把空操作字符 0自动附加到字符串的尾部作为字符串的结束标志。故字符个数为n的字符串在内存中应占n+1个字节。例:char c6=“china”;char*s=“china”;,29,b 与B是否相同?b 与“b”是否相同?,b为98,B为66b是字符常量,占据个1字节;b是字符串常量,占据个2字节,98,98 0,b 0,30,3.6变量赋初值(Variable initialization),1.初始化:在定义变量的同时为变量赋初值2.形式:类型标识符 变量名=常量或常量表达式 例如:int x=10;double sum=0
17、.;char ch=a;变量赋初值允许使用符号常量例如:#define PI 3.1415926.float x=PI;.可对被定义的变量的一部分赋初值 例如:int a,b,c=1,d=2;float r=2,l,s;可对几个变量赋以同一个初值 例如:int a=6,b=6,c=6;或可写为:int a=b=c=6;,31,数据类型的尺寸和范围,3.7 各类数值型数据间的混合运算,32,double(8 bytes)float(4 bytes)long int(4 bytes)unsigned int(4 bytes)int(2 bytes)char,short(1 bytes),形式:隐式
18、转换(由系统自动进行)显式转换(强制类型转换)隐式转换的转换规则:先自动转换成同类型数据,再进行运算。规则是低字长类型转换成高字长类型。,33,3.7各类数值型数据间的混合运算,(1)箭头表示当运算对象类型不同时的转换方向,一般是从低精度的类型转换到高精度的类型。(2)向左的横向箭头表示即使在同一种数据类型间进行运算时也要进行转换,用于提高精度。即:同为float 型数据的运算,一律转换成double 型数据后进行;同为char 和short int 型数据的运算,一律转换成 int 型的数据后进行。,double(8 bytes)float(4 bytes)long int(4 bytes)
19、unsigned int(4 bytes)int(2 bytes)char,short(1 bytes),34,34,3.7各类数值型数据间的混合运算,(3)当运算对象具有相同类型时,向上的箭头不再起作用。即:int型与int 型数据运算的结果仍为int 型;unsigned型与unsigned型数据运算的结果仍为unsigned型;long型与long 型数据运算的结果仍为long 型。,double(8 bytes)float(4 bytes)long int(4 bytes)unsigned int(4 bytes)int(2 bytes)char,short(1 bytes),35,c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据类型 运算 表达式
链接地址:https://www.31ppt.com/p-5638497.html