C3数据类型与运算规则.ppt

上传人:xin****828 文档编号:15470307 上传时间:2020-08-11 格式:PPT 页数:57 大小:1.01MB
收藏 版权申诉 举报 下载
C3数据类型与运算规则.ppt_第1页
第1页 / 共57页
C3数据类型与运算规则.ppt_第2页
第2页 / 共57页
C3数据类型与运算规则.ppt_第3页
第3页 / 共57页
资源描述:

《C3数据类型与运算规则.ppt》由会员分享,可在线阅读,更多相关《C3数据类型与运算规则.ppt(57页珍藏版)》请在装配图网上搜索。

1、1,C语言程序设计(三),计算机学院 裴明涛 ,2,第三章 数据类型与运算规则,3.1 数据与数据类型 3.2 C语言的基本数据类型及其表示 3.3 算术运算与赋值运算 3.4 位运算 3.5 其他运算 3.6 混合运算及数据类型转换,3,3.1 数据与数据类型(1),如何描述上述表达式中的数据、运算符号和运算过程?,4,3.1 数据与数据类型(2),数据:是程序加工、处理的对象,也是加工的结果; 数据类型:具有同样性质(能够作同样的操作,采用同样的编码方式等)的数据集合称为数据类型; 每种数据类型都有固定的表示方式,也就确定了可能表示的数据范围和在内存中的存放形式; C语言为每个类型定义了一

2、个标识符,称为类型名,如整数型用int表示;,5,3.1 数据与数据类型(3),6,3.2 C语言的基本数据类型及其表示,常量与变量 整形类型及其表示 实型类型及其表示 字符型类型及其表示 变量的初始化,7,常量与变量(1),常量: 在程序运行过程中,其值不能改变的量; 数值常量: 整型常量: 3,-1 实型常量:4.3,1.68 字符常量 字符常量:A,c 字符串常量:“AB”,”hello”,常量与变量(2),符号常量: 用标识符来表示常量; 使用宏定义命令对符号常量进行定义; 定义: #define 标识符 常量 #define PI 3.1415926 #define W “windo

3、ws 8”,8,9,常量与变量(3),变量: 在程序运行过程中,其值能改变的量; 变量名按标识符规则组成: 字母或下划线打头的字母、数字或下划线序列; ab,b3,c_7, _max,Int 7t, 99r,int,变量必须先定义后使用;,10,常量与变量(4),对变量的定义: 类型说明符 变量名表; 例如: int a,b,c; 提倡用能说明变量用途的有意义的名字为变量命名; 对变量的基本操作: 赋值: 取值:,11,常量与变量(5),变量的3个属性: 变量地址; 变量内容; 变量名;,12,关于常量和变量的一些编程规范(1),不使用常量的坏处: 程序的可读性(可理解性)变差。程序员自己会忘

4、记那些数字或字符串是什么意思,用户则更加不知它们从何处来、表示什么。 在程序的很多地方输入同样的数字或字符串,难保不发生书写错误。 如果要修改数字或字符串,则会在很多地方改动,既麻烦又容易出错。,13,关于常量和变量的一些编程规范(2),使用常量的规范: 常量全用大写的字母,用下划线分割单词。 尽量使用含义直观的常量来表示那些将在程序中多次出现的数字或字符串。 #define PI 3.1415926 如果某一常量与其它常量密切相关,应在定义中包含这种关系,而不应给出一些孤立的值。 #define RADIUS 100 #define DIAMETER RADIUS * 2,14,关于常量和变

5、量的一些编程规范(3),变量的命名规范: 变量名应当直观且可以拼读,最好采用英文单词或其组合,用词应当准确。例如不要把CurrentValue写成NowValue 程序中不要出现仅靠大小写区分的相似的变量名,例如x,X,15,关于常量和变量的一些编程规范(4),变量的名字应当使用“名词”或者“形容词名词”。 例如: float value,oldValue,newValue; 用正确的反义词组命名具有互斥意义的变量 例如: intminValue,maxValue; 尽量避免名字中出现数字编号,如value1, value2等,除非逻辑上的确需要编号。,16,整形类型及其表示(1),整型常量:

6、 十进制整型常量:123,8,-10等; 八进制整型常量: 以数字0 打头的数字序列(0-7) 如 056, 017, 078;,十六进制整型常量: 以数字0和字母x打头的序列(0 - 9,a - f) 如 0 x123,0 x3A ,0 x9g;,长整型常量在常量之后加上字母“l”或“L”,如123L, 40000L等;,17,整形类型及其表示(2),整型变量:,名称 占内存字节 表示范围 说明方法 基本整型 2 -215 215-1 int a,b; 短整型 2 同上 short a,b; 无符号整型 2 0 65535 unsigned a,b; 长整型 4 -231-231 1 lon

7、g a,b; 无符号长整型 4 0 232 1 unsigned long a;,18,整形类型及其表示(3),整型变量: 以关键字int为基本类型说明符; 配合四个类型修饰符,用来改变和扩充基本类型的含义; 整型数据在使用中应注意的问题: 变量要先定义后使用; 数据溢出; 若 int a,b;unsigned c;long d ; a=123; d= -105000; b=40000; c= 105000; 常量与变量的类型要匹配;,19,实型类型及其表示(1),实型常量: 小数形式:至少有一个小数点和一个数字,如12.3,87.4,-0.25等; 指数形式:由十进制整数或小数加上指数部分组

8、成,形式为:十进制小数e(E)指数 2.5e3 56E8 66e3 e2 1.2e 3e1.2,(整数),20,实型类型及其表示(2),实型变量:,名称 存储字节 表示范围 有效位 说明方法 单精度 4 -1038 - 1038 7 float a; 双精度 8 -10308 - 10308 16 double a; 长双精度 16 -104932 104932 19 long double a;,21,字符型类型及其表示(1),字符型常量: 普通字符:单引号括起来的单个字符,如a,B等; 转义字符:以转义标识符“”开始的字符序列,例如: n(换行),t(跳格),b(退格),(). ddd(1

9、到3位8进制数表示的字符) xdd(1到2位16进制数表示的字符),22,字符型类型及其表示(2),字符串常量: 双引号括起的一串字符,例如“China”, “Beijing”; 系统对字符串尾自动加0作为字符串终结符; a与“a”的区别: 字符常量 a, 占1个字节. 字符串常量 “a”, 占2个字节.,a,a,0,23,字符型类型及其表示(3),字符型变量: 只存放一个字符的变量,用char 说明; 一个字符型变量可存放一个字符,占用一个字节,存放字符的ASCII码; char a;int b; a=A;b=a+32; printf(“%c,%d”,b,a); 输出: a,65 字符型数据

10、与整型数据可以通用?,24,变量的初始化,先说明,再赋值; int x,y; x = 10, y = 30; 说明变量的同时对变量赋初值; int x = 10,y = 30; 不初始化会怎样?,25,3.3 算术运算与赋值运算,C语言中的运算规则 算术运算符与算术表达式 自增、自减运算 赋值运算符和赋值表达式 组合赋值运算符和组合赋值表达式,26,C语言中的运算规则(1),运算符按照其在表达式中与运算对象的关系可分为: 单目运算:连接一个运算对象; 双目运算:连接两个运算对象; 三目运算:连接三个运算对象; 运算符按照其在表达式中所起的作用可以分为: 算术运算符: +,-,*, 自增自减运算

11、符:+,- 关系运算符:, !=,= ,27,C语言中的运算规则(2),表达式: 用运算符将运算对象连接组成的符合C语言规则的算式; 按照运算符与运算对象的关系,表达式可分为: 单目表达式 如 a ba 双目表达式 如 ab ca*b 三目表达式 如 max = (ab)?a:b 按照运算符在表达式中的作用,表达式可分为: 算术表达式 如 a+b 关系表达式 如 a!=b ca 赋值表达式 如 a = 3 ,28,C语言中的运算规则(3),优先级: 同一个表达式中不同运算符进行计算时的先后次序; 当变量的两边均有运算符时,其优先级高的先运算. a + b d 结合性:是指同一个表达式中相同优先

12、级的多个运算应遵循的运算顺序; 左结合从左到右(除“=”外的双目运算符) a + b c (a + b) c 右结合从右到左(单目或三目运算符) -k+ -(k+),29,算术运算符与算术表达式(1),C语言允许的算术运算符包括: 加法运算或取正值运算,双目、单目运算符,作为单目运算符时优先级高于双目运算符,如 a+b,+5 减法运算或取负值运算,双目、单目运算符,作为单目运算符时优先级高于双目运算符,如 a-b,-5 * 乘法运算,双目运算符,如 a*b / 除法运算,双目运算符,如a/b, 13/4=? % 模运算(求余运算),双目运算符,要求两个运算对象都为整形,例如 5%7= ?, 7

13、%5= ?, 8%3.2 =?,5,2,3,30,算术运算符与算术表达式(2),算术运算符的优先级及结合性为:,31,算术运算符与算术表达式(3),算术表达式: 由算术运算符,常数,变量,函数和括号组成,其基本形式与数学上的算术表达式类似; 例如 12.45-43*5 x/(67-(12+y)*a) 双目运算符两侧运算对象的类型如果不一致,系统将自动按转换规律进行转换; 使用括号可以改变表达式的运算顺序;,32,自增、自减运算(1),自增“”、自减“”运算: 单目运算,其作用是使变量的值增1或减1; 优先级高于所有双目运算; 应用形式: 前缀形式:+i;-i; 表示变量在使用前自动加1或减1;

14、 后缀形式:i+;i-; 表示变量在使用后自动加1或减1; +、-运算只能作用于变量,不能用于表达式或常量; 用于+、-运算的变量只能是整型,字符型和指针变量; 前缀形式与后缀形式的意义不同; +、-的结合性是自右向左的;,33,自增、自减运算(2),int m,n; m = n+; 等价于 m = n; n = n + 1; m = +n; 等价于 n = n + 1; m = n; m = -n+; 等价于 m = -(n+); 等价于 m = -n; n = n+1;,34,自增、自减运算(3),若 int a=5,b; b=(a+)+(a+); b= a= b=(+a)+(+a); b

15、= a= b=(-a)+(a-); b= a=,10,7,14,7,8,3,35,自增、自减运算(4),关于, 在一行语句中最好只出现一次+,-,多了可读性会很差; C语言中允许编译程序自由重排表达式的顺序,以产生最优代码,因此语句过于复杂时,采用不同的编译程序编译时,可能会产生不同的运算结果。 +,-用于float会怎样?,36,赋值运算符和赋值表达式(1),赋值运算符: “”,其功能是计算赋值运算符“”右边表达式的值,并将计算结果赋给“”左边的变量; 右结合,优先级倒数第二;,若int k,i,j,a; a=5; k=3+(a=a+2);j=i=a*0.7; 则 a= k= i= j=,7

16、,10,4,4,37,赋值运算符和赋值表达式(2),赋值表达式: 由赋值运算符将一个变量和一个表达式连接起来的式子; 形式:变量名 表达式 赋值表达式的值就是赋值运算符左边变量的值; 类型转换: 赋值运算符两边的数据类型不一致时需要进类型转换; 转换原则是以“=”左边的变量的类型为准;,38,组合赋值运算符和组合赋值表达式(1),组合赋值运算符: 形式: 运算符 运算符可以是 、*、/、%等; 组成的组合赋值运算符为、*、/=、等; 组合赋值表达式: 形式: 变量名 组合赋值运算符 表达式 其功能等价于: 变量名 变量名 运算符 表达式,39,组合赋值运算符和组合赋值表达式(2),a+=b a

17、=a+b a-=b a=a-b a*=b a=a*b a/=b a=a/b .,若 int a=1,b=2,c=3; 则 a+=b-=c a=a+(b-=c) a=a+(b=b-c) a=a+(b=-1) a=1+(-1),所以 a=0 b=-1,int a=3,b=4; a*=b5,a=27 b=4,40,3.4 位运算,位运算符 按位逻辑运算 移位运算 位运算赋值运算符,41,位运算符,位运算的对象是二进制位,有如下操作:, (按位求反) (右移) sizeof(d)= ?,8,8,4,49,3.5 其他运算(4),( )、 运算符: ( )用来改变表达式的运算次序; 用于表示数组的下标;

18、 -, . 运算符: 用来引用结构成员的运算符; 优先级最高,左结合;,50,3.5 其他运算(5),(type)运算符: 形式:(类型)表达式 功能:将表达式强制转换成指定类型;,(int)(a+2*0.5) (int)a+2*0.5 int(a+2*0.5),int,double,3.6 混合运算及数据类型转换(1),混合运算:是指在一个表达式中参与运算的对象不是相同的数据类型; 数据类型转换: 赋值运算中的类型转换; (type)运算符的类型转换; 由语言的编译系统自动完成的类型转换; 一种“隐式的”自动类型转换; 必须了解这种自动转换的规则及其结果,否则会引起对程序执行结果的误解;,5

19、1,3.6 混合运算及数据类型转换(2),由语言的编译系统自动完成的类型转换: 运算中所有的char型数据都转换为int型,float型转换为double型; 低级类型转换为高级类型; 赋值运算中结果的类型以赋值运算符左边的变量类型为准;,52,3.6 混合运算及数据类型转换(3),53,double,float,long,unsigned,int,char,2.0 + 1/2; 表达式的值?,2.0,3.6 混合运算及数据类型转换(4),int a,j,y; float b; long d; double c; y = j + a + a*b c/d;,54,55,3.6 混合运算及数据类型转换(5),float a=0.5; int b; char c=a; 则下列表达式的类型是 5 + 2 * a c b = 5 + 2 * a c,double, int,56,运算符优先级小结,57,小结,数据与数据类型,整型,实型,各种运算,算术运算,字符型,指针型,关系运算,位运算,其他运算,

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

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

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


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