高级语言程序设计教学课件第5章_第1页
高级语言程序设计教学课件第5章_第2页
高级语言程序设计教学课件第5章_第3页
高级语言程序设计教学课件第5章_第4页
高级语言程序设计教学课件第5章_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第5章章 数据类型和表达式数据类型和表达式c的数据类型的数据类型c c数数据据类类型型指针类型指针类型空类型空类型 voidvoid基本类型基本类型字符类型字符类型 charchar数值类型数值类型整整 型型短整型短整型 shortshort长整型长整型 longlong整型整型 intint浮点型浮点型单精度型单精度型floatfloat双精度型双精度型doubledouble构造类型构造类型枚举类型枚举类型 enumenum数组数组结构体结构体 structstruct共用体共用体 unionunion5.1 数据的存储格式数据的存储格式n数据在计算机内存中以【数据在计算机内存中以【 】

2、形式存储】形式存储 a、二进制、二进制b、十六进制、十六进制 c、十进制、十进制d、八进制、八进制n整型数据在内存中以【整型数据在内存中以【 】存储】存储 a、原码、原码b、反码、反码 c、补码、补码d、ascii码码符号常量符号常量n符号常量定义:用标识符代表一个常量符号常量定义:用标识符代表一个常量n使用符号常量的优点使用符号常量的优点 含义清楚含义清楚 一改全改一改全改:符号常量名通常用大写,变量名用小写:符号常量名通常用大写,变量名用小写5.2基本数据类型基本数据类型n整型整型n实型实型n字符型字符型5.2.1整型整型n基本类型:基本类型:int类型类型signed intunsign

3、ed intsigned short intunsigned short intsigned long intunsinged long int比特数比特数323216163232取值范围取值范围-231 (231-1)0 (232-1)-215 (215-1)0 (216-1)-231 (231-1)0 (232-1)1、整型常量表示方式、整型常量表示方式 十进制十进制如:如:12,-123,0 八进制(以八进制(以 开头)开头)如:如:012 表示表示10 十六进制(以十六进制(以开头)开头)如:如:0 x12 表示表示18 长整型需在数值后面加上一个字母l或l:123l、0123l。 无

4、符号常量后面加上字母u或u: 123u、0 x123u。 5.2.2 实型数据实型数据n1、实型数据的存储、实型数据的存储 实型数据一般占实型数据一般占4个字节(个字节(float型)型)举例:举例:(3.14159)(3.14159)10 10 =0.110 0100 1000 0111 1110 0111 110 =0.110 0100 1000 0111 1110 0111 110 * *101010100000001001100100 10000111 11100111阶符阶符 阶码阶码数符数符 尾尾 数数 n2、实型常量表示方式、实型常量表示方式 十进制小数形式十进制小数形式.123

5、 123.456 -123. 0.0 指数形式指数形式123.4e4 -123e3 .123e-10n3、实型变量、实型变量 说明:说明:ansi c并没有具体规定每种类型的长并没有具体规定每种类型的长度、精度和数值范围。下面是常用的度、精度和数值范围。下面是常用的c编译系编译系统的情况统的情况floatdouble48-3.4*10-38 3.4*1038-1.7*10-308 1.7*10308 实型数据的舍入误差实型数据的舍入误差从上面的表中可以看出,实型数据的有效数据是有从上面的表中可以看出,实型数据的有效数据是有限的,有效数据以外的数字将被舍去。因此会产生限的,有效数据以外的数字将被

6、舍去。因此会产生误差误差n4、实型常量的类型、实型常量的类型 系统默认为系统默认为double类型类型 若希望指定为若希望指定为float类型在后面加类型在后面加f或或f2.3f -0.123f 2e-3f5.2.3 字符型数据字符型数据n1、字符数据的存储、字符数据的存储 一个字节存储一个字符数据一个字节存储一个字符数据 字节中存储的是字符的字节中存储的是字符的ascii码码如:字符如:字符a0 1 0 0 0 0 0 1a65n2、字符常量、字符常量 以单撇号括起来的一个字符。如以单撇号括起来的一个字符。如a、c、# 以一个以一个开头的字符序列。开头的字符序列。字符形式字符形式 n t b

7、 r含含 义义换行,将当前位置移到下一行开头换行,将当前位置移到下一行开头水平制表(跳到下一个水平制表(跳到下一个tab位置)位置)退格,将当前位置移到前一列退格,将当前位置移到前一列回车,将当前位置移到本行开头回车,将当前位置移到本行开头asciiascii码码109813字符形式字符形式 ddd xhh含含 义义反斜杠字符反斜杠字符单撇号字符单撇号字符双撇号字符双撇号字符1到到3位位8进制数所代表的字符进制数所代表的字符1到到2位位16进制数所代表的字符进制数所代表的字符asciiascii码码923934 问题:已知换行的问题:已知换行的ascii码值为码值为10,则下列正确,则下列正确

8、表示换行符的方法是表示换行符的方法是:(:(ch是字符型变量是字符型变量)(a)ch=n;(b)ch=10;(c)ch=12;(d)ch=x10;(e)ch=xa;(f)ch=10; (g)ch=10; n字符变量字符变量 一个字符变量只能存放一个字符一个字符变量只能存放一个字符 字符变量的定义形式,如:字符变量的定义形式,如:char c1,c2; 字符变量的使用方式,如:字符变量的使用方式,如:c1=a; c2=b;char c1, c2;c1 = a;c2 = b;0 1 1 0 0 0 0 1ch1970 1 1 0 0 0 1 0ch298问题:若有说明语句:问题:若有说明语句:ch

9、ar c72;则变量;则变量c(a)包含包含1个字符个字符(b)包含包含2个字符个字符(c)包含包含3个字符个字符(d)说明不合法,说明不合法,c的值不确定的值不确定以以括起来的一个字母括起来的一个字母以以开头的字符序列开头的字符序列5.3运算符及表达式运算符及表达式nc运算符简介运算符简介算术运算符算术运算符关系运算符关系运算符逻辑运算符逻辑运算符位运算符位运算符赋值运算符赋值运算符逗号运算符逗号运算符条件运算符条件运算符+ - + - * * / % + - / % + - = = != = = !=! & |& | | & | &= = 及其扩展(及其扩展(+= -= += -= 等)等

10、),?:?:强制类型转换强制类型转换分量运算符分量运算符( (类型)类型). -. -算术运算符算术运算符n基本的算术运算符基本的算术运算符 优先级:优先级: 结合方向结合方向n功能功能n结果的类型结果的类型说明:说明:%只能进行只能进行的取模运算的取模运算,且且整数的算术运算结果仍为整数整数的算术运算结果仍为整数如果算术运算中有如果算术运算中有-5%2 = 5%-2 =1%10 =5%1 =5.5%2 = 5/2 = -5/2.0 = 2 -2.5 -1 1 1 0 ( ) 自增、自减运算符自增、自减运算符 + -n作用作用 使使加加1或减或减1n种类种类 前置前置 +i, -ii=i+1或

11、或i=i-1,i值值 后置后置 i+,i- i值值,i=i+1或或i=i-15+(a+b)+ 说明:说明:优先级:优先级:- + - * / % + - + -结合方向:结合方向: 例例 i=3; printf(“%d”,-i+); 例例 j=2;k=3;printf(“%d”,j+k); -(i+) printf(“%d”,-i); i=i+1; 结果:结果:-3,i=4(j+)+kprintf(“%d”,j+k);j=j+1; /结果结果 5,j=3-5,02,1,11,0,0赋值运算符赋值运算符n简单赋值运算符简单赋值运算符 符号:符号:= 格式:格式:=表达式表达式 作用:将一个数据(

12、常量或表达式)赋给一个作用:将一个数据(常量或表达式)赋给一个变量变量a=3;b=sqrt(a);c=b+2;n复合赋值运算符复合赋值运算符 种类种类 含义含义a+=3 x*=y+8x%=3 a=a+3 x=x* y+8 x=x%3n说明说明: : 优先级优先级: : 结合方向:结合方向: 左侧必须是变量,不能是常量或表达式左侧必须是变量,不能是常量或表达式规则规则: :使赋值号右边表达式值使赋值号右边表达式值转转换成其左边变量的类型换成其左边变量的类型 赋值表达式的值与变量值相等赋值表达式的值与变量值相等, ,且可嵌套且可嵌套3=x-2*y; a+b=3; a=b=c=5 a=(b=5) a

13、=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2)/表达式值表达式值5; a,b,c值为值为5/表达式值表达式值5; b=5,a=5/表达式值表达式值11;c=6,a=11/表达式值表达式值10;a=10,b=4,c=6/表达式值表达式值5; a=5,b=10,c=2逗号运算符逗号运算符n逗号运算符逗号运算符 形式:形式: 优先级优先级:最低最低 结合性结合性:从左向右从左向右 逗号表达式的值:等于表达式逗号表达式的值:等于表达式n的值的值x=3, y=13, z=4.000000 位运算符位运算符2 00000000 000001015i2 00000000 0101

14、010084i&j 00000000 0001000016ij 00000000 0010110145i|j 00000000 00111101615.4 类型转换类型转换n混合运算的规则混合运算的规则 不同类型数据混合运算,先转化为同一类型不同类型数据混合运算,先转化为同一类型 转化规则转化规则float型一律转化为型一律转化为double型型char,short型转化为型转化为int型型精度低类型转化为精度高类型精度低类型转化为精度高类型floatchar,shortdoublelongunsignedintint a=3;float f=5.14;char c=a; 10+c c转化为转化为int型型,c的值为的值为97,则结果为,则结果为107 a*f a和和f转化都为转化都为double型型,结果为结果为9.420000 10+c+a*f 将将10+c的结果转化为的结果转化为double型与型与a*f的结果相加的结果相加 结果为结果为116.4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论