第二章数据类型、运算符.ppt_第1页
第二章数据类型、运算符.ppt_第2页
第二章数据类型、运算符.ppt_第3页
第二章数据类型、运算符.ppt_第4页
第二章数据类型、运算符.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

第二章数据类型 运算符与表达式 2 1常量和变量 2 2C的数据类型 2 3C的运算符及表达式 2 1常量和变量 一 基本语法成份C语言的字符集字符是可以区分的最小符号 是构成程序的基础 1 26个大小写英文字母 a z A Z 2 10个数字字符 0 9 3 标点符号 空格 2 标识符标识符在程序中用来标识各种程序成份 命名程序中的一些实体 如变量 常量 函数 类型 标号等对象的名字 必须以英文字母或下划线开头 是字母 数字 下划线的序列 判断 i a1 op y 1 zhou prg max sun day a 1 1computer x y abc 99999 100 3c 1 预定义标识符有特定的含义 如库函数的名字 预处理命令等 2 用户定义标识符由用户根据需要定义的标识符 用来给变量 数组 函数 文件等命名 注意 C语言允许用户将预定义标识符另作它用 但将使其失去系统规定的原意 3 关键字关键字又称为保留字 由系统提供 用以表示特定的语法成份 关键字有特定的语法含义 不允许用户重新定义 auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while 二 常量1 常量的定义在程序运行过程中 其值不能改变的量 2 常量的类型整型 实型 字符型 字符串常量 字面常量和符号常量3 符号常量用一个标识符来代表一个常量 通过宏定义预处理命令来实现 格式 define标识符常量 符号常量名是用户命名的标识符 一般大写 一旦定义 在程序中凡是出现常量的地方均可用符号常量名来代替 对使用了符号常量的程序在编译前会以实际常量替代符号常量 使用符号常量的好处 1 含义清楚 2 方便程序修改 可以做到一改全改 三 变量1 变量的定义在程序中其值可以改变的量 用标识符表示 2 变量的实质一个变量代表了内存中的某个存储单元 变量名就是该存储单元的名字 注意 变量必须先定义后使用 其作用为 1 保证程序中变量名使用正确 2 每一个变量被指定为一确定类型 在编译时就能为其分配相应的存储单元 3 指定变量所属类型 便于编译时检查该变量所进行的运算是否合法 3 变量的分类整型变量 实型变量 字符型变量 2 2C的数据类型 一 整型数据1 整型数据的分类包括四种类型 基本型 int 短整型 shortint 长整型 longint 和无符号型 unsigned 不同类型的数据在计算机中所占用的字节数和取值范围不同 1 int 215 215 1 即 32768 327672字节 2 shortint 同int 3 longint 231 231 14个字节 4 unsignedint 值全部为正 0 655352个字节2 整型常量 1 十进制常量 用十进制数码表示数 不加前缀 2 八进制常量 用八进制数码表示数 加前缀 0 数字零 如 0123 0275等 3 十六进制常量 用十六进制数码表示数 加前缀0 x或0X 数字零和字母x X 如0 x1A 0X8F等 整型常量有基本整型 短整型 长整型和无符号型 加后缀表示 l 或L u 或U 及其组合 3 整型变量可分为基本整型 短整型 长整型和无符号型 inta b shortintc longd e 4 整数在内存中的存储形式最高位表示符号位 正数用原码表示 负数用补码表示 无符号数的所有位数都表示数值 5 整型数据的溢出各种整数类型都有各自的取值范围 一旦超出了这个范围 就不能正确地表示数据 这种情况称为 溢出 includevoidmain intmax min max 32767 min max 1 printf max d min d n max min 二 实型数据 浮点型数据 1 实型常量对一个实型常量 可以用两种形式表示它 即十进制小数形式和指数形式 1 十进制小数形式 如123 45 0 001 2 指数形式 其组成格式为 e 或E 其含义为 10 注意 书写规则 1 尾数部分不能省略 即e 或E 前必须有数据 2 指数部分必须是整数 3 尾数可以只有整数部分或只有小数部分 4 指数 尾数都可以带符号 如省略符号则隐含为正 2 实型变量浮点型变量分单精度 float 双精度 double 和长双精度 longdouble floata b doublec d longdoublee f 注意 实型常量在编译系统中作为double型来处理 三 字符型数据1 字符常量一个字符常量是用单引号括起来的字符 在内存中占一个字节的存储空间 共有256个不同的字符 有些是可见的 有些是不可见的 它们只起控制作用 如换行 回车等 2 字符变量用来存放字符常量 用char表示 charc 3 字符在内存中的存放形式字符在内存中是以ASCII码值存储 因此字符型和整型之间有相通性 这些相通性表现在 1 字符型数据可以用整型形式输出 反之 一定范围内的整数也可以用字符形式输出 2 字符型和整型之间可以进行混合运算 3 整型变量可以接收字符常量 字符变量也可以接收整型数值 当然这都要在一定范围之内 includevoidmain inti j charc1 c2 c1 a c2 b printf c1 c c1 d c2 c c2 d n c1 c1 c2 c2 i 97 j 98 printf i d i c j d j c n i i j j 4 转义字符常量也称反斜线字符 总是以反斜杠 开头 后跟一个特定的字符 用来代表某一个特定的ASCII字符 也用单引号括起来 有三种情况 非显示字符 控制字符 可显示字符 字符的数值表示 includevoidmain printf Thisisaprogram n printf thisis ba 012program n printf first second 5 字符串常量用一对双引号括起来的字符序列 在每一个字符串的结尾加一个字符串结束标志 0 其ASCII码为0 是一个空操作 四 变量的初始化C语言允许在定义变量的同时使变量初始化 也可以使被定义变量的一部分赋初值 inta 3 floatr 3 14 charc a inta b c 10 inta 3 b 3 c 3 注意 初始化不是在程序编译时完成的 而是在程序运行时执行本函数时赋初值的 2 3C的运算符及表达式 一 算术运算符及算术表达式1 算术运算符 1 的运算对象是整数 其余均为整数 实数 2 双目运算符两边运算数的类型必须一致才能进行操作 所得结果的类型与运算数的类型一致 3 如果双目运算符两边的运算数的类型不一致 系统将自动进行转换 一致后再进行运算 运算数运算数转换结果shortintlongintshort longintlongintint longcharintchar intsignedunsignedsigned unsignedintfloatint doublefloat doublefloatfloatfloat doubleintdoubleint double 2 算术表达式 1 表达式把常量 变量 函数和运算符按C语言的语法规则连接起来的式子叫表达式 必定有一个值 即运算结果 2 算术表达式用算术运算符和一对圆括号将运算量连接起来的表达式称为算术表达式 注意 在算术表达式中 只要有一个数是double型 则结果即为double型 3 算术运算符的优先级和结合性 4 类型转换类型转换有自动转换 又称隐含转换 与强制转换两种方式 1 自动转换由系统自动完成intusignedlongdouble short charfloat这种转换是一种保值映射 在转换中数据的精度不受损失 2 强制转换强制类型转换通过类型转换运算进行 格式 类型名 表达式 将表达式的类型强制转换成类型名指定的类型 如 floatx y int x y 将表达式x y的值强制转换成整型 强制类型转换在将高类型转换为低类型时 数据精度受损 是一种不安全的转换 强制类型转换是暂时性的 一次性的 并不永久改变所转换表达式的类型 如 inta double a为双精度 a依然为整型量 讨论 表达式计算 1 floatx 2 5 y 4 7 inta 7 计算 x a 3 int x y 2 4 2 inta 2 b 3 floatx 3 5 y 2 5 计算 float a b 2 int x int y 3 inti 3 floatf 1 0 doubled 2 3 计算 10 a i f d 1 2 5 2 3 5 3 107 7 二 赋值表达式1 赋值运算符和赋值表达式格式 变量名 表达式由赋值运算符组成的表达式称为赋值表达式 赋值运算时先计算右边表达式的值 然后将右边表达式的值赋给左边变量 即送给左边变量对应的存储单元 并以此作为整个赋值表达式的值 1 赋值运算符的优先级只高于逗号运算符 且具有右结合性 2 赋值运算符不是等号 没有相等的关系 3 赋值运算符的左边只能是变量 不能是常量或表达式 4 赋值运算符右边的表达式还可以是一个赋值表达式 5 赋值表达式的值就是左边变量所取得的值 2 复合赋值表达式 在基本赋值运算符 之前加上任一双目算术运算符及位运算符可构成复合赋值运算符 又称带运算的赋值运算符 算术复合赋值运算符 位复合赋值运算符 复合赋值运算先进行所带运算 再进行赋值运算 复合赋值运算的优先级同赋值运算 举例 1 inta 3 a 2等价于a a 2 2 floatx 1 2 y 2 1 y x 3 4等价于y y x 3 4 3 inta 1 b 2 b a 1 等价于b b a a 1 3 赋值运算中的类型转换如果赋值运算符两边的类型不一致 则在赋值的时候要对右边表达式的类型进行转换 使之适应左边变量的要求 1 将实型数据赋给整型变量时 舍弃实数的小数部分 inti i 1 23 2 将整型数据赋给单 双精度型变量时 数值大小不变 但以浮点形式存储到变量中 floatf 15 doubled 15 则有 f 15 000000 6个0 d 15 00 0 14个0 3 将字符型数据赋给整型变量时 由于字符数据只占一个字节 而整型变量为两个字节 将字符的数据放整型变量的低8位 而对整型变量的高8位进行符号扩展 如果系统将字符处理成无符号的量或赋给无符号整型变量 则将字符的8位放到低8位 高8位补0 如果所用系统将字符处理成带符号的量 若字符最高位为0 则高8位补0 若字符最高位为1 则高8位补1 4 将整型数据赋给字符型变量时 只将其低8位原封不动地送到字符型变量 5 将基本整型数据赋给长整型变量时 基本整型数据放长整型变量低16位 高16位用符号位扩充 反之将长整型数据赋给整型变量时 只需将长整型数据的低16位原封不动送整型变量中 6 将无符号整型数据赋给长整型变量时 不存在符号扩展的问题 只需将高位补0即可 将无符号整型数据赋给一个占字节数相同的整型变量时 将无符号整型数据原样送整型变量中 并将最高位当作符号位 如果数据超出相应的整型范围 将产生数据错误 如果将整型数据赋给占字节数相同的无符号整型变量 也是原样照赋 最高位作数值处理 三 自增和自减运算符1 作用使运算对象的值增1或减1 实质是一种赋值操作 2 说明 1 是单目运算符 运算对象可以是整型变量也可以是实型变量 不能是常量和表达式 因为不能给其赋值 2 既可做前缀 也可以做后缀运算符 i先加后用i 先用后加举例 inti j i 2 j i j i j i i i j I 3 结合性是自右向左 4 使用时注意避免歧义性 在一个表达式中不要使用同一变量的自增或自减运算 举例 i 1 i i i i i i 四 运算符的组合问题 C语言的运算符一

温馨提示

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

评论

0/150

提交评论