c语言第2章车辆类型运算符.ppt

上传人:max****ui 文档编号:6334387 上传时间:2020-02-23 格式:PPT 页数:40 大小:588.81KB
返回 下载 相关 举报
c语言第2章车辆类型运算符.ppt_第1页
第1页 / 共40页
c语言第2章车辆类型运算符.ppt_第2页
第2页 / 共40页
c语言第2章车辆类型运算符.ppt_第3页
第3页 / 共40页
点击查看更多>>
资源描述
第三章数据类型 运算符和表达式 数据类型 方炜炜 第三章数据类型运算符表达式 1 什么是数据类型 2 C语言的数据类型有哪些 一 C的数据类型 第三章数据类型运算符表达式 1 什么是数据类型 数据结构 算法 程序 C语言中以 数据类型 形式存在 对数据的描述 对操作的描述 第三章数据类型运算符表达式 在程序中对用到的所有数据都必须指定其数据类型 不同类型的数据 所占内存的字节数不同 对应的操作也不相同 2 C的数据类型 第三章数据类型运算符表达式 1 常量2 变量 二 常量与变量 常量 举例 求某商品总价 include 可用 stdio h 也可用 definePRICE100 定义符号常量voidmain intsum sum PRICE 20 printf d n sum 单价 符号常量 数量 直接常量 第三章数据类型运算符表达式 概念 在程序运行过程中 其值不能被改变的量 分类 字面常量 直接常量 12 44 6 a Hello 符号常量 用一个标识符代表一个常量 字符串常量 符号常量的定义 格式 define常量名字面常量举例 definePRICE100 definePI3 14 defineC1 a 习惯上常量名用大写 变量名用小写 符号常量的定义放在函数外面 1 常量 标识符identifier 1 标识符就是一个名字 如常量名 变量名 函数名 2 组成 只能由字母 数字 下划线组成 且第一个字符必须为字母或下划线 3 长度 标识符的有效长度随系统而异 如果超长 则超长部分被舍弃 建议不要超过8个字符 4 标识符命名的良好习惯 见名知意 例如 name 姓名 age 年龄 下列标识符是否合法 为什么 suma1b2s name123 ssa b c1a8bc 思考 合法 不合法 第三章数据类型运算符表达式 概念 其值可以改变的量称为变量 2 变量 要素 1 变量名 每个变量都必须有一个名字 变量名 变量命名遵循标识符命名规则 2 变量值 在程序运行过程中 变量值存储在内存中 在程序中 通过变量名来引用变量的值 变量定义 数据类型变量名 变量名2 习惯上 变量名用小写字母 常量名用大写字母 方式 1 定义变量的同时赋初值 也叫变量初始化 格式 数据类型变量名 初值 变量名2 初值2 2 通过一个赋值语句给变量赋初值 格式 变量名 初值 变量赋初值 inta b 3 inta b b 3 inta b a b 3 b undeclaredidentifier 1 程序中用到的变量必须 先定义 declare 后使用 2 C语言的关键字不能用作变量名 书P375 3 C语言对英文字母的大小写敏感 即同一字母的大小写 被认为是两个不同的字符 4 定义变量时 给几个变量赋相同的初值 应写成 inta 3 b 3 c 3 不能写成 inta b c 3 5 给变量赋值时 正常情况下应给变量赋相同类型的数据 关于变量以及变量赋初值的几点说明 变量 举例 includevoidmain intstudent age intif adrress 1 floatscore 90 stadent 2 Age 20 7 printf d d d f if student age score 本程序中有几处错误 1 if 为关键词2 intif address 1 应分别赋初值 3 stadent 未定义的标识符 拼写错误4 Age 未定义的标识符 大小写敏感 对score和age赋值时会自动进行类型转化 90 90 0 20 7 20 第三章数据类型运算符表达式 1 整数类型2 实数类型3 字符类型4 不同类型数据间的转换 四 基本数据类型 第三章数据类型运算符表达式 1 整数类型 变量 分类及取值范围 表示可以省略 占用的内存字节数 随系统而异 思考 下列定义正确的是 inti 9 4 unsignedshorti 4 longi 3 第三章数据类型运算符表达式 表示方法 十进制 123 456 0八进制 0123 0456 十六进制 0 x123 0 x456 以数字0开头 以0 x开头 整数类型 常量 分类 基本整型 数据范围与int型一样 长整型 在数值后面加 L l 数据范围与longint型一样 无符号整型 在数值后面加 U u 如123l 315L 类型匹配规则 一个整型常量 可以赋给能容纳下其值的整型变量 思考 下列常量哪些合法 029 19u 1234 20L 029是非法数 19u错误 表示方法 十进制小数形式 123 34 0 0045 0 0指数形式 E e 如2 3e2 4 5e 3 3 0 5 规范化指数形式 数字和小数点组成 实数类型 常量 规范化指数 字母e之前必须有数字 且小数点左边应有一位 且只有一位 非0数字 如0 45e2或45e1是错误的 字母e后指数部分必须为整数 如4 5e2 4是错误的 2 3e2 2 3 102 230e表示10 思考 以下不是规范化指数形式的是 4 5e 23 0 34e933e 4 第三章数据类型运算符表达式 分类及取值范围 2 实数类型 变量 实数类型 舍入误差 例题 include stdio h VoidMain floata b a 123456 789e5 b a 20 printf f a printf f b a 12345678900 b 12345678920 Float有效位数7位 12345678848 00000012345678848 000000 应避免将一个大数和一个很小的数相加减 会丢失小的数 如1 0 3 3的结果就不等于1 第三章数据类型运算符表达式 表示方法 用单引号括起来的一个字符 a A 9 不同的两个字符 转义字符 3 字符类型 常量 语言还允许使用一种特殊形式的字符常量 就是以反斜杠 开头的转义字符 将 后面的字符转换为另外的意义 即是一种控制符号 字符类型 变量 存储方式 以ASCII码存储 占一个字节 类型及范围 char大小写英文字母 数字 运算符 标点符号等不能在一个字符变量中放一个字符串 注意 字符型数据与整型数据在存储方式上的相似性使得两者之间可以通用 但字符型数据的表示范围是 0 255 举例 字符变量ch中存放字符 a 其ASCII码为97 在内存中以二进制形式存放 其格式如下 01100001 ch 例 字符变量的字符形式输出和整数形式输出 P291ASCII码 includevoidmain charch1 ch2 ch1 a ch2 b printf ch1 d ch2 d n ch1 ch2 printf ch1 c ch2 c n ch1 32 ch2 字符类型 举例1 一个字符型数据 既可以字符形式输出 也可以整数形式输出字符数据进行算术运算 就是对它们的ASCII码值进行算术运算 ch1 97 ch2 98ch1 A ch2 b 程序运行结果 字符类型 举例2 字符数据与整型数据可以互相赋值 例 字符数据的算术运算 参考教材的ASCII码表 includevoidmain charch1 inti i a ch1 97 printf ch1 c ch1 d n ch1 ch1 printf i c i d n i i ch1 a ch1 97i a i 97 程序运行结果 概念 字符串常量 用一对双引号 括起来的若干字符序列 字符串长度 字符串中字符的个数 长度为0的字符串 即一个字符都没有的字符串 称为空串 表示为 一对紧连的双引号 字符串 CHINA 在内存中的实际存储形式是怎样的 占用多少个字节的内存空间 占用 字节而非 字节内存空间 存储方式 C语言规定 在存储字符串常量时 由系统在字符串的末尾自动加一个 0 作为字符串的结束标志 以便系统判断字符串是否结束 注意 1 a 是字符 a 是字符串 2 不能把一个字符串赋给一个字符变量 如c a c Hello 都是错误的 3 C语言中没有字符串变量 可以用字符数组来表示 c a 占内存1字节 a 占2字节 总结 字符与字符串的区别有哪些 定界符不同 字符常量使用单引号 而字符串常量使用双引号 长度不同 字符常量的长度固定为1 而字符串常量的长度 可以是0 也可以是某个整数 存储要求不同 字符常量存储的是字符的ASCII码值 而字符串常量 除了要存储有效的字符外 还要存储一个结束标志 0 数据类型常量变量定义注意事项整型45inta 小于32767实型4 5floatb 输出保留小数点6位字符 a charc c a c 65 对c a 错误字符串 a 用数组所占存储空间 长度 1 第三章数据类型 运算符和表达式 运算符和表达式方炜炜 运算符与表达式 第三章数据类型运算符表达式 1 算术运算符和算术表达式 2 赋值运算符和赋值表达式 3 逗号运算符和逗号表达式 1 算术运算符和算术表达式 第三章数据类型运算符表达式 基本算术运算符 例1 5 3 1 5 3 15 3 2 模运算符或求余运算符 算术表达式 用算术运算符和括号将运算对象 也称操作数 连接起来的 符合C语法规则的式子 优先级和结合性 先乘除 后加减 有括号先算括号 自左至右 两个整数求 的结果为整数 向0取整 两边必整数 常量 变量等 举例 已知三角形的边长a b c 求三角形周长的一半 includevoidmain floata b c s a 3 b 4 c 5 s 1 2 a b c printf s 8 2f s s 0 00 程序运行结果 s 6 00 程序运行结果 改为 1 0 2 1 2 0 1 算术运算符和算术表达式 第三章数据类型运算符表达式 自增 自减运算符 作用 使变量的值增1或减1 格式 i i 先使i的值加1 减 1 再使用i i i 在使用i之后 使i的值加1 减 1 例3 i 3 A j i B j i i i 1 i i 1 j i A j 4i 4B j 3i 4 1 算术运算符和算术表达式 第三章数据类型运算符表达式 例4 i 3 a i b i c a b c i c 7i 5 i 4 说明 1 自增运算符和自减运算符只能用于变量而不能用于常量和表达式 2 使用 和 时 常会出现一些人们 想不到 的副作用 初学者要慎用 2 赋值运算符和赋值表达式 第三章数据类型运算符表达式 赋值运算符 简单 复合 赋值表达式 类型转换 条件 当赋值运算符两侧的类型不一致时原则 以变量类型为准 例1 floata intb a 1 2 b a 3 b b 3 例2 a 3 x y 8 a a 3 x x y 8 例3 a b 5 a 7 c 8 a b c a 5 b 5a 15 c 8 2 赋值运算符和赋值表达式 例4 a 12 a a a a 例5 a 12 printf d n b a 输出结果 12一条语句完成赋值 输出功能 3 逗号运算符和逗号表达式 第三章数据类型运算符表达式 逗号运算符 逗号表达式 表达式1 表达式2 例1 a 3a 3 5 a 4 a a 12 例2 整个表达式的值为表达式2的值 a 3a 3 5 a 4 a a 15表达式的值为60 逗号运算符级别最低 例1为赋值表达式 例2为逗号表达式 类型转换 显式转换 强制转换 一般形式 要转换成的数据类型 被转换的表达式 注 当被转换的表达式是一个简单表达式时 外面的一对圆括号可以缺省 举例 floatx y x 2 3 y 4 5 int x y 6 int int x y 6 5 double 说明 强制转换得到的是所需类型的中间变量 原变量或表达式的类型不变 includevoidmain floatx inti x 3 6 i int x printf x f i d x i 思考 以下程序的输出结果是什么 x 3 600000 i 3 程序运行结果 结论 较高类型向较低类型转换时可能发生精度损失问题
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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