C语言第二章数据类型、运算符与表达式A.ppt

上传人:max****ui 文档编号:6334961 上传时间:2020-02-23 格式:PPT 页数:38 大小:319.81KB
返回 下载 相关 举报
C语言第二章数据类型、运算符与表达式A.ppt_第1页
第1页 / 共38页
C语言第二章数据类型、运算符与表达式A.ppt_第2页
第2页 / 共38页
C语言第二章数据类型、运算符与表达式A.ppt_第3页
第3页 / 共38页
点击查看更多>>
资源描述
C语言程序设计 第2章数据类型 运算符与表达式 本章主要学习任务 C的数据类型 2 常量 变量 3 常用基本数据类型的表示 机内存储 变量分类 4 数值型数据混合运算及类型转换规律 2 1C的数据类型 数据类型 数据的存在或组织形式基本类型指针类型构造类型空类型 整型字符型实型枚举型 单精度型双精度型 数组类型结构体类型共用体类型 注意 C语言中的数据有变量与常量 它们分别属于上述这些类型 1 不同的数据类型有不同的取值范围 2 不同的数据类型有不同的操作 3 不同的数据类型即使有相同的操作有时含义也不同 4 不同的数据类型对计算机可能出现的错误不同 2 2常量与变量 一 常量 字面常量符号常量 用标识符代表 定义方法 definePI3 1415 不是C语句 不必在行末加分号 该命令是用标识符代替一个字符串 不作正确性检查使用符号常量的好处 含义清楚 见名知意 修改方便 一改全改 二 变量变量必须先定义后使用变量名 变量值 存储单元的关系标识符标准 1 组成 字母 数字 下划线 且首字符不能为数字合法 abc 321 1a 非法 2aa a c c 92 长度 3 大写小写不同SUM sum4 选择标识符的时候要 见名知意 符号常量与变量的关系符号常量 值在作用域内不能改变 不能被再赋值 常用大写变量 值是可以改变 可以多次赋值的 常用小写 2 3整型数据 一 整型常量十进制整数 八进制整数 十六进制整数 注 C语言整常数没有二进制整数形式 二 整型变量内存中的存放形式以二进制补码形式存放每个基本整型变量在内存中占4个字节 VC环境中 整型变量的分类基本类型int可加修饰符 short long signed unsigned 整数类型 3 整型变量的定义定义格式 数据类型名变量名 可定义多个相同类型的变量 各个变量用 分隔 类型说明与变量名之间至少有一个空格间隔 最后一个变量名之后必须用 结尾 变量说明必须在变量使用之前 可以在定义变量的同时 对变量进行初始化 4 整型数据的溢出整型数最大允许值 1 最小允许值 1 会出现什么情况 例 短整型数据的溢出voidmain shorta 32767 b b a 1 printf a d b d n a b 三 整型常量的类型整型常量赋值给整型变量时 如何匹配 值在 32768 32767范围内的整数 可以赋值给int和shortint longint型变量 如果值超过了以上范围 在 2147483648 2147483647范围内 可以赋值给int longint型变量 2 4实型数据 一 实型常量十进制小数形式 123 123 123 0指数形式 e之前必须有数字 e后面指数必须是整数规范化的指数形式 字母e之前的小数部分中 小数点左边应有且只有一位非零数字 二 实型变量实型数据在内存中是以指数形式存放的实型变量的分类单精度float4字节双精度double8字节长双精度longdouble10字节3 实型数据的舍入误差因为实型变量的有效位以外的数字将被舍去 由此会产生误差 voidmain floata doubleb a 33333 33 b 33333 33333 printf a f b f n a b 三 实型常量的类型实型常量可以赋给float double longdouble 按变量类型截取实型常量中相应的有效数字位数 注意 不要试图用一个实数精确表示一个大整数 记住 浮点数是不精确的 实数一般不判断 相等 而是判断接近或近似 根据要求选择单精度 双精度 2 5字符型数据 一 字符常量直接用单引号括起来 使用字符的转义表示法表示 ASCII码表示 特殊字符 预先定义的一部分常用的转义字符 如 n 换行 t 水平制表 转义表示格式 ddd 或 xhh 其中ddd hh是字符的ASCII码 ddd八进制 hh十六进制 注意 不可写成 0 xhh 或 0ddd 整数 二 字符变量字符型变量是用来存放字符数据 同时只能存放一个字符 定义形式 chara a b b 所有编译系统都规定一个字符变量在内存中占一个字节 三 内存中的存储形式以字符的ASCII码 以二进制形式存放 占用1个字节 字符型数据和整型数据之间可以通用 当作整型量 具体表现为 可以将整型量赋值给字符变量 也可以将字符量赋值给整型变量 可以对字符数据进行算术运算一个字符数据既可以以字符形式输出 也可以以整数形式输出 注意 字符型数据作为整数使用范围0 255 无符号 128 127 有符号 例 给字符变量赋以整数 字符型 整型数据通用 main 字符 a 的各种表达方法 charc1 a charc2 x61 charc3 141 charc4 97 charc5 0 x61 charc6 0141 printf c1 c c2 c c3 c c4 c c5 c c6 c n c1 c2 c3 c4 c5 c6 printf c1 d c2 d c3 d c4 d c5 d c6 d n c1 c2 c3 c4 c5 c6 四 字符串常量字符串常量 是一对双引号 括起来的字符序列 注意 字符常量与字符串常量 如 a 和 a C规定以 0 ASCII码为0的字符 作为字符串结束标志 不能将字符串赋给字符变量 C语言没有专门的字符串变量 如果想将一个字符串存放在变量中 可以使用字符数组 2 6变量赋初值 C语言允许在定义变量的同时使变量初始化 可以使被定义的变量的一部分赋初值对几个变量赋同样的初值 inta 3 b 3 c 3 错误的赋值表示 inta b c 3 2 7各类数值型数据的混合运算 整型 实型 字符型数据之间可以混合运算进行运算时 不同类型的数据先转换成同一类型 然后进行计算转换的方法 自动转换 隐式转换 强制转换 1 自动动转换 隐式转换 混合运算时 由编译系统自动完成 转换规则 参看图2 10 赋值运算 赋值号右边的类型转换为左边的类型 这种转换是截断型的转换 不会四舍五入 2 强制转换一般形式 类型说明符 表达式 功能 把表达式的结果强制转换为类型说明符所表示的类型 例如 int a将a的结果强制转换为整型量 int x y 将x y的结果强制转换为整型量 float a b将a的内容强制转换为浮点数 再与b相加 说明 类型说明和表达式都需要加括号 单个变量可以不加括号 无论隐式转换 强制转换都是临时转换 不改变数据本身的类型和值 例 强制类型转换voidmain floatf 5 75 printf int f d n int f printf f f n f 2 8算术运算符和算术表达式 C语言运算符 控制语句和输入输出以为的基本操作都作为运算符处理P31表达式 使用运算符将常量 变量 函数连接起来 构成表达式 一 算术运算符 1 两个整数相除 结果为整数 舍入方式为 向零取整 2 求余运算 两侧均应为整型数据 余数的符号与被求余数符号相同 二 算术表达式1 算术表达式 用算术运算符将运算对象连接起来的 符合C语法规则的式子 2 运算对象可以是常量 变量 函数等 合法的C表达式 a b c 1 5 a 注意 C语言算术表达式的乘号 不能省略C语言表达式中只能出现字符集允许的字符 C语言算术表达式只使用圆括号改变运算的优先顺序 不要指望用 3 算术 运算符的优先级与结合性 P 325附录 C语言规定了运算符的 优先级 和 结合性 优先级别相同 则按规定的 结合方向 处理 左结合性右结合性对于复杂表达式为了清晰起见可以加圆括号 强制规定计算顺序 四 自增 自减运算符 i i i i 注意 前置运算 i i 先自增 减 再参与运算 后置运算 i i 先参与运算 再自增 减 例如 i 3 分析j i j i 自增 减运算符不能用于常量或表达式 五 表达式使用中的问题 1 表达式中子表达式的求值顺序 2 C编译系统在处理时尽可能多地将若干字符组成一个运算符 在处理标识符 关键字时也按同一原则处理 3 调用函数时 实参的求值顺序 2 9赋值运算和赋值表达式 一 赋值运算符赋值符号 就是赋值运算符二 类型转换赋值运算时 当赋值运算符两边数据类型不同时 先将赋值号右边表达式类型转换为左边变量的类型 然后赋值 1 实型数据赋给整型变量2 整型数据赋给实型变量3 单双精度常量赋值给实型变量4 字符型赋给整型变量5 整型数据赋给字符型变量 三 复合的赋值运算符 之前加上其他二元运算符 构成复合的运算符a 3 对应于a a 3 四 赋值表达式变量 表达式将赋值运算符右侧的 表达式 的值赋给左侧的变量 赋值表达式的值就是被赋值的变量的值 2 10逗号运算符和逗号表达式 逗号表达式 用逗号将两个表达式连接起来形式 表达式1 表达式2求解过程 自左向右 先求解表达式1 再求解表达式2 整个逗号表达式的值是表达式2的值 可以扩展到N个表达式优先级 所有运算符中优先级最低例 a 3 5 a 4注意 函数参数也是用逗号来分隔的
展开阅读全文
相关资源
相关搜索

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


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

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


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