数据描述与基本操作.ppt_第1页
数据描述与基本操作.ppt_第2页
数据描述与基本操作.ppt_第3页
数据描述与基本操作.ppt_第4页
数据描述与基本操作.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

第二章数据描述与基本操作 数据类型基本数据类型常量变量运算符与表达式 对应教材第三章 自学教材第二章 标识符 定义 用来标识 表示 变量 常量 函数等的字符序列组成 只能由字母 数字 下划线组成 且第一个字母必须是字母或下划线区分大小写不能使用关键字命名原则见名知意不宜混淆如l与I o与0min length max information C数据类型 基本类型 构造类型 指针类型 空类型void 字符类型char 整型 实型 数组 结构体struct 共用体union 数据类型决定 1 数据占内存字节数2 数据取值范围3 允许的操作 枚举类型enum 基本数据类型 整型 字符型 实型 有 无 16 Unsignedint 0 65535 unsignedshort 16 0 65535 一般用大写字母是宏定义预处理命令 不是C语句直接常量 整型常量实型常量字符常量字符串常量 常量定义 程序运行时其值不能改变的量 即常数 分类 符号常量 用标识符代表常量定义格式 define符号常量常量 例符号常量举例 definePRICE30main intnum total num 10 total num PRICE printf total d total 运行结果 total 300 整型常量 整常数 三种形式 十进制整数 由数字0 9和正负号表示 如123 456 0八进制整数 由数字0开头 后跟数字0 7表示 如0123 011十六进制整数 由0 x开头 后跟0 9 a f A F表示 如0 x123 0Xff 例12与12L 例30000为int型65536为longint型 整型常量的类型根据其值所在范围确定其数据类型在整常量后加字母l或L 认为它是longint型常量 问题 0123 100 x123 100Xff 10 实型常量 实数或浮点数 表示形式 十进制数形式 必须有小数点 如0 123 123 123 0 0 0 123 指数形式 e或E之前必须有数字 指数必须为整数 如12 3e3 123E2 1 23e4 e 5 1 2E 3 5 实型常量的类型默认double型在实型常量后加字母f或F 认为它是float型 字符常量定义 用单引号括起来的单个普通字符或转义字符 字符常量的值 该字符的ASCII码值 如 101 A 012 n 376 x61 a 060 0 483 例 A 101 x41 65 如 A 65 a 97 0 48 n 10 如 a A n 101 转义字符 反斜线后面跟一个字符或一个代码值表示 例转义字符举例main printf 101 x42C n printf Isay Howareyou n printf CProgram n printf Turbo C 运行结果 屏幕显示 ABCIsay Howareyou CProgram Turbo C 例main printf Y b n 运行结果 屏幕显示 打印机输出 字符常量与字符串常量不同 字符串常量定义 用双引号 括起来的字符序列存储 每个字符串尾自动加一个 0 作为字符串结束标志 例 charch ch A 变量概念 其值可以改变的量变量名与变量值变量定义的一般格式 数据类型变量1 变量2 变量n 变量初始化 定义时赋初值 决定分配字节数和数的表示范围 合法标识符 变量的使用 先定义 后使用 例1intstudent stadent 19 Undefinedsymbol statent infunctionmain 变量定义位置 一般放在函数开头 整型变量占字节数随机器不同而不同 一般占一个机器字short int long可用sizeof 类型标识符 计算 实型变量float 占4字节 提供7位有效数字double 占8字节 提供15 16位有效数字 字符型变量字符变量存放字符ASCII码char与int数据间可进行算术运算 例floata a 111111 111 a 111111 1 doubleb b 111111 111 b 111111 111 例a D a 68 x A 5 x 65 5 s G s 33 71 没有字符串变量 用字符数组存放 例 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 常量小结 定义 程序运行时其值不能改变的量 即常数 符号常量 用标识符代表常量定义格式 define符号常量常量一般用大写字母是宏定义预处理命令 不是C语句常量后缀L或l长整型U或u无符号数F或f浮点数常量类型整数 长整数 无符号数 浮点数 字符 字符串 符号常数 转义字符 常量小结 续 整型常量十进制整数 由数字0 9和正负号表示八进制整数 由数字0开头 后跟数字0 7表示十六进制整数 由0 x开头 后跟0 9 a f A F表示实型常量十进制数形式 必须有小数点 如0 123 123 123 0 0 0 123 指数形式 e或E之前必须有数字 指数必须为整数 如12 3e3 123E2 1 23e4 e 5 1 2E 3 5默认double型 在实型常量后加字母f或F为float型字符常量 用单引号括起来的单个普通字符或转义字符字符串常量 用双引号 括起来的字符序列 每个字符串尾自动加一个 0 作为字符串结束标志 变量小结 概念 其值可以改变的量变量名与变量值变量定义的一般格式 数据类型变量1 变量2 变量n 变量初始化 定义时赋初值变量的使用 先定义 后使用变量定义位置 一般放在函数开头注意 没有字符串变量 用字符数组存放 不同类型数据间的转换 隐式转换什么情况下发生运算转换 不同类型数据混合运算时赋值转换 把一个值赋给与其类型不同的变量时输出转换 输出时转换成指定的输出格式函数调用转换 实参与形参类型不一致时转换运算转换规则 不同类型数据运算时先自动转换成同一类型显式转换 强制转换 一般形式 类型名 表达式说明 强制转换得到所需类型 原变量类型不变 混合运算隐式转换规则 按存储单元中的存储数值直接传送 例 int x y int x y double 3 2 int 3 6 例main floatx inti x 3 6 i int x printf x f i d x i 结果 x 3 600000 i 3 精度损失问题 显式转换举例 数据描述与基本操作 运算符与表达式 C运算符 1 算术运算符 类型 2 赋值运算符 及其扩展赋值运算符3 关系运算符 6 条件运算符 7 逗号运算符 8 指针运算符 9 求字节数运算符sizeof10 分量运算符 11 下标运算符 12 其它如函数调用运算符 学习运算符应注意 1 掌握运算符的功能 2 搞清运算符与运算量间的关系 要求运算量个数要求运算量类型 3 清楚运算的优先级别 4 明确结合方向 在一个运算量的两侧有两个相同优先级别的运算符 则按结合方向顺序处理 5 明白结果的类型 即表达式的类型 算术运算符和表达式 基本算术运算符 结合方向 从左向右优先级 2 3 4 说明 可为单目运算符时 右结合性 只有右边有运算量 两整数相除 结果为整数 要求两侧均为整型数据 例5 2 2 5 2 0 2 5 例5 2 1 5 2 11 10 15 1 05 5 2 算术运算符和表达式 续 自增 自减运算符 作用 使变量值加1或减1种类 前置 i i 先执行i 1或i 1 再使用i值 后置i i 先使用i值 再执行i 1或i 1 例j 3 k j j 3 k j j 3 printf d j j 3 printf d j a 3 b 5 c a b a 3 b 5 c a b k 4 j 4 k 3 j 4 4 3 c 20 a 4 c 15 a 4 说明 不能用于常量和表达式 如5 a b 结合方向 自右向左优先级 2 3 4 注意 的副作用 例 i i i 3 printf d i 3 例 i i 3 printf d i 算术运算符和表达式 续 从左到右尽可能多地将若干字符组成一个运算符 简单赋值运算符符号 格式 变量标识符 表达式作用 将一个数据 常量或表达式 赋给一个变量 复合赋值运算符种类 含义 exp1op exp2 exp1 exp1opexp2 例a 3 d func c d 2 赋值运算符和表达式 说明 结合方向 自右向左优先级 14左侧必须是变量 不能是常量或表达式 赋值表达式的值与变量值相等 且可嵌套 赋值转换规则 使赋值号右边表达式值自动转换成其左边变量的类型 错误 3 x 2 y a b 3 例floatf inti i 10 f i 则f 10 0 例inti i 2 56 结果i 2 例 a b c 5a b 5 a 5 c 6 a b 4 c 6 a b 10 c 2 表达式值为5 a b c值为5 b 5 a 5 表达式值11 c 6 a 11 表达式值10 a 10 b 4 c 6 表达式值5 a 5 b 10 c 2 赋值运算符和表达式 续 赋值运算符和表达式 续 赋值类运算符的副作用及限制 语言中允许在一个表达式中使用一个以上的赋值类运算符 对人的影响和副作用 易造成误解 程序尽可能写得明了易懂一些 加上一些不必要的括号 对机器的副作用 不定解 交换律不再适用 例 a 12 a a a a a 264等价于a a a a a a 例 inta 2 a 4 1 a a a a 3 a 0等价于a a a a a a a a 3 形式 表达式1 表达式2 表达式n结合性 从左向右优先级 15逗号表达式的值 等于表达式n的值用途 常用于循环for语句中 例a 3 5 a 4a 3 5 a 4 a 5例x a 3 6 3 x a 3 6 a例a 1 b 2 c 3 printf d d d a b c printf d d d a b c b c a 15 表达式值60 a 15 表达式值20 赋值表达式 表达式值18 x 18 逗号表达式 表达式值18 x 3 1 2 3 3 2 3 逗号运算符和表达式 关系运算符种类 结合方向 自左向右优先级别 例c a b c a b a b c a b c a bc a b c 关系表达式的值 是逻辑值 真 或 假 用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 关系运算符和表达式 关系运算注意 区分 与 例5 2 7 8在C中是允许的 值为 0 例inti 1 j 7 a a i j 4 0 则a 2 例 a 0结果为 A 100结果为 1 0 关系运算符和表达式 续 应避免对实数作相等或不等的判断例1 0 3 0 3 0 1 0结果为0可改写为 fabs 1 0 3 0 3 0 1 0 1e 6 此例有错 逻辑运算符种类 逻辑运算真值表 C语言中 运算量 0表示 假 非0表示 真 运算结果 0表示 假 1表示 真 逻辑运算符和表达式 例ab x ya b x y a a b 优先级 结合方向 a x x b a b x y a b x y a a b 逻辑运算符和表达式 续 优先级 结合方向 例a 4 b 5 aa ba b a b4 0 25 3 2 8 4 0 c d 值为1 值为0 值为1 值为1 值为1 值为1 5 3 2 8 4 0 值为1 短路特性 逻辑表达式求解时 并非所有的逻辑运算符都被执行 只是在必须执行下一个逻辑运算符才能求出表达式的解时 才执行该运算符 例a m a b n c d 结果m 0 n 1 逻辑运算符和表达式 续 条件运算符与表达式一般形式 expr1 expr2 expr3功能 相当于条件语句 但不能取代一般if语句 例求a b printf a b d n b 0 a b a b 例 a b Y N x 2 1 1 0 x 0 x x c a c z c a A c 条件运算符可嵌套优先级 13 结合方向 自右向左如a b a c d c d a b a c d c d

温馨提示

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

评论

0/150

提交评论