02_数据类型运算符和表达式.doc_第1页
02_数据类型运算符和表达式.doc_第2页
02_数据类型运算符和表达式.doc_第3页
02_数据类型运算符和表达式.doc_第4页
02_数据类型运算符和表达式.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

第二讲 第三章 数据类型、运算符和表达式内容:3.5 字符型数据3.6 变量赋初值3.7 各类数据间的混合运算3.8 算术运算符和算术表达式3.9 赋值运算符和赋值表达式3.10 逗号运算符和逗号表达式3.5 字符型数据一、字符常量1. 字符常量: 用单引号括起来的一个字符.如: A, e等;2. 转义字符: 以开头的字符,这些字符的意义不是其本身,而是转成为新的意义其具体含义见教材P48 表3.3。如: n 表示回车换行,即使光标位于下一行的开头; t 表示横向跳格,即使光标跳到下一个输出区。二、字符变量1. 字符变量: 可以存放一个字符并能改变其值的变量;2. 字符变量的定义: char 变量名;如: char a; /* 定义a为字符变量.*/3. 字符变量所占的存储空间: 1个字节。三、字符型数据在内存中的存储形式及使用方法1. 存储形式: 将该字符的 ASCII码存放到内存单元中;2. 输出形式:以字符形式输出:将内存中的ASCII码转换成字符,然后输出;以整数形式输出:将ASCII码作为整数输出,可以是十进制,也可以是八进制或十六进制。3. 注意: TC 在将字符按整数形式输出时,将字符按带符号数处理。如: 下面的程序main ()char c1,c2,c3=376;c1=97;c2=98;printf(%c %c n,c1,c2);printf(%d %d n,c1,c2);printf(%x %x n,c1,c2);printf(%o %o n,c1,c2);printf(%d n,c3);运行结果:a b97 9861 62141 142-2四、字符串常量1. 字符串常量: 一对双引号括起来的字符序列,叫字符串。2. 字符串常量的长度: 字符串常量的长度等于字符的个数加 1,因字符串常量在内存中存储时,末尾加有一结束标志,以字符常量 0作为结束标志。3. 注意: 字符串常量不能赋给字符变量。4. 字符串常量与字符常量的区别:字 符字 符 串形式单引号双引号变量有变量无变量在内存中的存储按ASCII码存储,占一个字节按ASCII码存储,占若干个字节3.6 变量赋初值一、赋值运算符 C语言的赋值运算符号是 = ,但要注意这不是等号。二、赋初值的方法 C 规定,在定义变量时,可以给变量赋初值,方法如下:1. 定义变量时为一个变量赋初值: 如: int a=8;long b=62895;等;2. 定义变量时同时为多个变量赋初值: 如: int a=3,b=4,c=5;。3. 注意:(1) int a=3;b=4;c=5; 与int a=3,b=4,c=5;不同,前者是三个语句,后者是一个语句。(2) 对几个变量赋同一初值时,要使用 int a=3,b=3,c=3;而不能写成 int a,b,c=3;也有能写成 int a=b=c=3;3.7 各种类型数据间的混合运算一、各种类型数据的运算级别说明: 1. 上图中纵向箭头表示数据类型级别的高低,横向箭头表示必须进行的转换,即char、short、float型数据都不能直接参与运算。 2. 各种类型的数据在转换时,一次性完成向最高级别的转换,而不需要一级级逐步完成。 3. 数据的这种转换是由系统自动完成,而不需要用户完成1。二、运算结果的类型 不同类型的数据混合运算时,结果的数据类型是优先级最高的类型,但要注意运算结果并不是输出形式。请看下面的例子:main ()int c1=7;double c2=98.003213247;float c3;c3=c1+c2;pritnf(%.9f %.9fn,c3,c1+c2);printf(%.7f %.7fn,c3,c1+c2);运行结果为:105.003211975 105.003213247105.32120 105.321323.8 算术运算符和算术表达式一、TC 的运算符 与其它语言相比,TC 的运算符最丰富,除控制语句和输入输出以外,几乎所有的基本操作都作为运算符处理,有以下几类运算符:1. 算术运算符2. 关系运算符3. 逻辑运算符4. 位运算符5. 赋值运算符6. 条件运算符7. 逗号运算符8. 指针运算符9. 求字节运算符10. 强制类型转换运算符11. 分量运算符12. 下标运算符13. 其它二、算术运算符和算术表达式1. 基本算术运算符(1) 基本算术运算符+(加号) -(减号) *(乘号) /(除号) %(求余运算符号)注意:(1) 求余运算符号要求两个运算对象均为整型数据。(2) 两个整数进行除法运算结果仍为整数,如: 5/3 结果为1。(3) 在整数除法运算中,若除数或被除数中有一个为负数,采用向零取整法,如: -5/3结果为 -1; -20/3 结果为 -6.(4) 参加除法运算的两个数中有一个为实数,则结果是 double 型。(2) 基本算术运算的优先等级括号 *,/,% +,-(3) 基本算术运算符的结合性 基本算术运算符的结合性是左结合性,即如果一个运算对象两侧的运算符号的优先等级相同时,则按照自左向右的原则,先与左边的运算符号结合(先执行左边的运算),然后再与右边的运算符号结合(后执行右边的运算)如: a-b*c/d 执行b*c的运算; 用b*c的结果与d进行 / 运算; 进行 - 运算;2.自增自减运算符(1) 运算符号: +(自增运算符) -(自减运算符)(2) 功能: 使变量的值增 1 或减 1。(3) 结合性:自增(减)运算符的结合性是右结合性。(4) 优先级:单目运算符,优先级高于算术运算符,低于括号类运算符。(4) 注意: * 自加(减)运算符号在变量前(前置)和在变量后运算(后置)时使用方法是不同的,前置自增(减)运算符是先自增(减)再使用,后置自增(减)运算符是使用之后再自增(减)。3. 强制类型转换符(1) 强制类型转换符: (类型名)(2) 使用方法: (类型名) (表达式)(3) 功能:将表达式的值转换成规定的类型。(4) 结合性: 右结合性。(5) 注意:* 当表达式只有一个变量时,表达式的括号可以省略.* 使用强制类型运算符时,表达式中各变量的类型并未发生变化,只是得到一个中间变量。* 凡系统能自动进行的数据类型转换,则不需要进行强制类型转换。三、算术表达式用算术运算符将函数、运算对象(操作数)连起来,符合 C 语言规则的式子称为算术表达式。3.9 赋值运算和赋值表达式一、赋值运算1. 赋值运算符: =2. 赋值表达式: 变量=表达式3. 功能: 计算表达式的值并将计算结果赋给指定的变量。4. 赋值表达式的值:进行赋值操作后变量的值就是赋值表达式的值。二、赋值运算的注意事项 赋值运算符两侧的变量和表达式的数据类型不一致但都是数值型数据时,系统能进行自动转换,转换规律如下:int float 将整型数据转换成实型数据(补足小数位数)后再赋值;float int 将实型数据的小数去掉后再赋值;int long 将整型数据放入长整型变量的低16位,再进行符号扩展(不变);char int 将字符型数据放入整型变量的低8位,再进行符号扩展(不变);char long 将字符型数据放入长整型变量的低8位,再进行符号扩展;long int 数据不超相应的整型范围时不变,超过时将溢出;int unsigned 按原样赋值;long unsigned 按原样赋值,超过无符号数所表示的范围时将溢出;unsigned int 按原样赋值,但数据超过相应整型的范围,将溢出;unsigned long 低16位按原样赋值,高16位补零。三、复合赋值运算符 1. 复合赋值运算符: 双目运算符+赋值运算符;2. 复合赋值运算表达式: 变量 双目运算符=表达式;3. 功能: 先将变量对赋值运算符后面的表达式进行一次双目运算符所指定的运算然后再将运算结果赋给变量;4. 说明: 赋值运算的表达式可以是一个赋值表达式。例如: a+=32 与 a=a+32 是等价的,即用a对32进行一次加法运算,再将运算结果赋给变量a。再如: a=b=5 表示先将5赋给变量b,然后再将b=5的值(即b的值)赋给变量a。3.10 逗号运算符和逗号表达式一、逗号运算符: , (多目运算符)二、逗号表达

温馨提示

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

评论

0/150

提交评论