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

下载本文档

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

文档简介

第二章数据类型运算符和表达式 第二章数据类型 运算符和表达式 内容提要数据类型常量与变量运算符与表达式 2 1数据类型 数据类型总表 数据类型决定 1 数据占内存字节数2 数据取值范围3 其上可进行的操作 说明 数据类型所占字节数随机器硬件不同而不同 上表以IBMPC机为例 基本数据类型 2 1数据类型 2 2常量与变量 数据是程序的处理对象C语言将数据分为常量与变量 2 2 1常量1 常量的定义及分类定义 程序运行的过程中 其值不能改变的量 分类 整型常量实型常量字符常量字符串常量符号常量 2 2常量与变量 2 整型常量 既整常数 三种形式 十进制整数 由数字0 9和正负号表示 如123 456 0八进制整数 由数字0开头 后跟数字0 7表示 如0123 011十六进制整数 由0 x开头 后跟0 9 a f A F表示 如0 x123 0Xff 转换成十进制数的方法 0123 1x82 2x81 3x80 83 100 x123 1x162 2x161 3x160 291 100Xff 15x161 15x160 255 10 2 2常量与变量 整型常量的说明 1 空白字符不可以出现在整数数字之间 2 根据其值所在范围确定其数据类型 3 在整常量后加字母l或L 认为它是longint型常量 例如30000为int型65536为longint型79L 012L为longint型 2 2常量与变量 3 实型常量实常数或浮点数 是一个十进制表示的符号实数表示形式 十进制小数形式 digits digits 如0 123 123 123 0 0 0 123 指数形式 包括整数部分 尾数部分和指数部分 digits digits E e digits 小数点之前是整数部分 小数点之后是尾数部分 小数点在没有尾数时可省略 如12 3e3 123E2 2 2常量与变量 实型常量的说明 1 实型常量采用十进制小数形式表示时 必须有小数点 例如 123 是实型常量 而123是整型常量 2 采用指数形式表示时 在E或e之前必须要有数字 且之后的指数必须为整数 例如 E6 e6 e等都是不合法的 3 实型常量的整数部分为0时可以省略 如下形式是允许的 57 0075e2 125 175E 2 4 所有的实型常量均被看作是双精度类型 double 2 2常量与变量 4 字符常量定义 用单引号括起来的单个普通字符或转义字符 分为一般字符常量和特殊字符常量一般字符常量 如 a 9 等 单引号只起定界作用并不表示字符本身 中间的字符可以是除单引号 和反斜杠 以外的数字 字母等C语言字符集中包含的所有可显示字符 特殊字符常量 也叫转义字符 是C语言中表示字符的一种特殊形式 其含义为将反斜杠 后面的字符转换成另外的意义 2 2常量与变量 字符常量的值 该字符的ASCII码值 如 A 65 a 97 0 48 n 10 2 2常量与变量 aaa 13 如 101 A 012 n 376 x61 a 060 0 例转义字符举例intmain printf 101 x42C n printf Isay Howareyou n printf CProgram n printf Turbo C 运行结果 屏幕显示 ABCIsay Howareyou CProgram Turbo C 2 2常量与变量 字符常量与字符串常量不同 5 字符串常量定义 用双引号 括起来的字符序列存储 每个字符串尾自动加一个 0 作为字符串结束标志 例 charch ch A 例 charch ch A 2 2常量与变量 6 符号常量 1 标识符定义 用来标识变量 常量 函数等的字符序列组成 只能由字母 数字 下划线组成 且第一个字母必须是字母或下划线大小写敏感不能使用关键字长度 最长32个字符命名原则 见名知义不宜混淆如1与l o与0 2 2常量与变量 在C语言中 允许将程序中的常量定义为一个标识符 称为符号常量 在使用符号常量前必须先加以定义 一般情况下 符号常量使用大写英文字母表示 其定义的一般形式为 define例如 definePRICE35 2 2常量与变量 2 2 2变量概念 其值可以改变的量变量名与变量值变量定义的一般格式 数据类型变量1 变量2 变量n 变量初始化 定义时赋初值变量的使用 先定义 后使用 决定分配字节数和数的表示范围 合法标识符 例 inta b c floatdata 例 inta 2 b c 4 floatdata 3 67 charch A intx 1 y 1 z 1 intx y z 1 2 2常量与变量 变量定义位置 一般放在函数开头 2 2常量与变量 与常量类似 变量也有不同的类型 一般可以分为以下三种类型 整型变量实型变量字符变量 2 2常量与变量 1 整型变量 1 整型变量的分类基本型短整型长整型无符号整型 基本型 类型说明符为int 在内存中占2个字节 短整型 类型说明符为shortint或short 所占字节和取值范围均与基本型相同 长整型 类型说明符为longint或long 在内存中占4个字节 无符号整型 类型说明符为unsigned 无符号基本型 类型说明符为unsignedint或unsigned 无符号短整型 类型说明符为unsignedshort 无符号长整型 类型说明符为unsignedlong 2 2常量与变量 例2 1整型变量的使用 includeintmain intx y z x 10 y 20 z x y printf x y d n z return0 输出结果 x y 30 2 整型变量的定义与使用 2 2常量与变量 intx x 10 则变量x的值10在内存中的存放形式 intx x 10 则变量x的值10在内存中的存放形式 3 整型数据在内存中的存放形式 2 2常量与变量 例2 2整型数据的溢出问题 includeintmain intx y x 32767 y x 1 printf d d n x y return0 运行结果 32768原因 一个int型变量只能容纳 32768到32767范围内的数 无法表示超过这个范围的数 4 整型数据的溢出 2 2常量与变量 2 实型变量 1 实型变量的分类单精度实型 类型说明符为float 在内存中占4个字节 提供7位有效数字 双精度实型 类型说明符为double 在内存中占8个字节 提供15 16位有效数字 例floata a 111111 111 a 111111 1 doubleb b 111111 111 b 111111 111 2 2常量与变量 例2 3实型变量的使用 includeintmain floatx y z x 10 y 20 z x y printf x y f n z return0 运行结果 x y 30 000000 2 实型变量的定义与使用 2 2常量与变量 例a D a 68 x A 5 x 65 5 s G s 33 71 字符变量存放字符ASCII码char与int数据间可进行算术运算 没有字符串变量 用字符数组存放 3 字符变量 2 2常量与变量 includeintmain charc1 c2 定义c1 c2为字符型变量 c1 97 c2 98 将整数97和98分别赋给c1和c2 printf c c n c1 c2 以字符形式输出c1和c2 printf d d c1 c2 输出c1和c2的ASCII码值 printf d c1 c2 return0 运行结果如下 a b97 98 2 2常量与变量 例 definePRICE12 5main intnum 3 floattotal charch1 ch2 D total num PRICE ch1 ch2 A a printf total f ch1 c n total ch1 运行结果 total 37 500000 ch1 d 4 变量的初始化 2 2常量与变量 运算符的分类 2 3运算符与表达式 定义 由常量 变量 函数 运算符和括号组合起来的 符合C语法规则的式子称为表达式 一个表达式有一个值以及其对应的类型表达式求值首先进行优先级高的运算再进行优先级低的运算 然后对于优先级相同的运算按结合方向进行运算 结合方向 左结合 右结合例如 2 3运算符与表达式 2 3 1算术运算符及算术表达式1 基本算术运算符 结合方向 从左向右优先级 高 说明 可为单目运算符时 右结合性两整数相除 结果为整数 如果两整数中有一个是负数 舍入规则为 向零取整 如果运算的两个数中有一个是实型 则结果为double型 要求两侧均为整型数据 例5 2 2 5 2 0 2 55 2 1 5 2 11 10 15 1 05 5 2 2 3运算符与表达式 includeintmain printf 10 9 6 5 d 10 9 6 5 return0 运行结果如下 10 9 6 5 5 includemain intx 5 y y x printf d n y 输出结果 6 例2 5计算表达式10 9 6 5 2 3运算符与表达式 例2 6计算表达式10 3 0 2的值 includeintmain printf 10 3 0 2 f 10 3 0 2 运行结果如下 10 3 0 2 8 500000 2 3运算符与表达式 2 算术表达式定义 用算术运算符和括号将运算对象连接起来的 符合C语法规则的式子称为算术表达式 其中的运算对象包括常量 变量 函数等 例如 x y x 2 y sin x sin y 等都是算术表达式 2 3运算符与表达式 1 x y h 2 2 s s a s b s c 3 x 1 2 y 1 2在C语言中 其合法的算术表达式如下 1 x y h 2 0 2 s s a s b s c 3 x 1 x 1 y 1 y 1 例2 7写出下列数学表达式对应的合法的C算术表达式 2 3运算符与表达式 种类 结合方向 自左向右优先级别 关系运算符优先级低于算术运算符 2 3 2关系运算符及关系表达式1 关系运算符 例 c a b等价于c a b a b c a b ca bca b c 2 3运算符与表达式 关系运算结果 1 真 和0 假 例2 8计算下列关系表达式的值 1 10 10 2 10 10 3 10 10 10 4 3 8 9 5 7 3 2 3运算符与表达式 2 关系表达式关系表达式的值 是逻辑值 真 True 或 假 False 用1或0表示关系表达式例子inta 3 b 2 c 1 d f a b a b cb cbf a b c 表达式值1 表达式值1 表达式值0 d 1 f 0 2 3运算符与表达式 种类 逻辑运算真值表优先级 高2 11 低12 2 3 3逻辑运算符及逻辑表达式1 逻辑运算符 2 3运算符与表达式 例2 9假设x 10 y 20 分析下列逻辑表达式 1 x 2 x y 3 x y 4 x 5 10 y x 10 y 例2 10 写出满足要求的合法的C逻辑表达式 1 x表达0到9的字符 2 x和y都大于0 3 x是偶数并且x 100 2 3运算符与表达式 位运算是指进行二进制位的运算例如 将一个存储单元中的各二进制位左移 右移 两个数按位相加等 说明 1 位运算符中除 以外 均为二目 元 运算符 即要求两侧各有一个运算量 2 运算量只能是整型或字符型的数据 不能为实型数据 附 位运算符 2 3运算符与表达式 位运算中的 和 的真值表与逻辑运算等价 唯一不同的是位运算是逐位进行运算的 异或位运算符 的真值表 2 3运算符与表达式 定义 用逻辑运算符短路特性 逻辑表达式求解时 并非所有的逻辑运算符都被执行 只是在必须执行下一个逻辑运算符才能求出表达式的解时 才执行该运算符 例a m a b n c d 结果m 0 n 1 2 逻辑表达式 2 3运算符与表达式 1 赋值运算符赋值符号 就是赋值运算符 它的作用是将一个数据赋给一个变量 例2 11假设变量x为整型 计算下列赋值表达式的值 1 x y 10 2 x 10 y 20 3 x 10 y 20 z 30 2 3 4赋值运算符及赋值表达式 2 3运算符与表达式 如果赋值运算符两侧的数据类型不一致 但都是数值型或字符型时 系统要进行类型转换 将浮点型数据 包括单 双精度 赋给整型变量时 舍弃浮点数的小数部分 如 为整型变量 执行 i 3 56 的结果是使 的值为 以整数形式存储在整型变量中 将整型数据赋给单 双精度变量时 数值不变 但以浮点数形式存储到变量中 即用0补足有效数字位 如 i为float型变量 执行 i 3 的结果i 3 000000 以单精度浮点数形式存储到i中 赋值运算符类型转换 2 3运算符与表达式 将一个double型数据赋给float变量时 截取其前面7位有效数字 存放到float变量的存储单元 4个字节 中 但应注意数值范围不能溢出 如果将一个float型数据赋给double变量时 数值不变 有效位数扩展到16位 在内存中以8个字节存储 2 3运算符与表达式 字符型数据赋给整型变量时 由于字符只占1个字节 而整型变量为 个字节 因此将字符数据 个二进位 放到整型变量存储单元的低 位中 第一种情况 如果字符型为无符号的字符型 则将字符的 位放到整型变量低 位 高 位补零 第二种情况 如果字符型为带符号的 则将字符的 位放到整型变量低 位 高 位补符号位 即 符号扩展 若字符最高位为0 则整型变量高8位补0 若字符最高位为1 则高8位全补1 2 3运算符与表达式 将一个int short long型数据赋给一char型变量 只将其低8位原封不动地送到char型变量 即截断 将带符号的整型数据 int型 赋给long型变量时 要进行符号扩展 将整型数的16位送到long型低16位中 反之 若将一个long型数据赋给一个int型变量 只将long型数据中低16位原封不动地送到整型变量 即截断 2 3运算符与表达式 将unsignedint型数据赋给longint型变量时 不存在符号扩展问题 只需将高位补 即可 将unsignedint型数据赋给int型变量时 将数据原封不动的送到整型变量中 但如果数据范围超过相应整型的范围 会出现错误 将非unsigned型数据赋给长度相同的unsigned型变量 也是原样照赋 连原有的符号位也作为数值一起传送 2 3运算符与表达式 定义 由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式 例如 x 10 x y 10 说明 赋值运算符左侧必须是变量 不能是常量或表达式 赋值转换规则 使赋值号右边表达式值自动转换成其左边变量的类型 例floatf inti i 10 f i 则f 10 0 错误 3 x 2 y a b 3 2 赋值表达式 2 3运算符与表达式 赋值表达式的值与变量值相等 且可嵌套 例 a 12 a a a a a 264等价于a a a a a a 2 3运算符与表达式 复合的赋值运算符在 前面加上其他运算符种类 一般形式 变量双目运算符 表达式它等效于 变量 变量运算符表达式 例2 12假设变量x 10 y 20 计算下列复合的赋值表达式的值 1 x 10 2 x y 20 3 x x x 10 2 3运算符与表达式 自增 自减运算符 作用 使变量值加1或减1优先级 高于 单目减 种类 前置 i i 先执行i 1或i 1 再使用i值 后置i i 先使用i值 再执行i 1或i 1 intx y x 10 y x 此时 变量y的值为11 如果程序改为 x 10 y x 则变量y的值为10 2 3 5增量运算符 2 3运算符与表达式 一般形式 expr1 expr2 expr3由常量 变量 函数 运算符和括号组合起来的 符合C语法规则的式子称为表达式 执行过程 2 3 6条件运算符及条件表达式 2 3运算符与表达式 结合方向 自右向左例2 13假设变量x 10 y 20

温馨提示

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

评论

0/150

提交评论