数据类型、表达式、运算符.ppt

上传人:max****ui 文档编号:8583577 上传时间:2020-03-30 格式:PPT 页数:39 大小:807.50KB
返回 下载 相关 举报
数据类型、表达式、运算符.ppt_第1页
第1页 / 共39页
数据类型、表达式、运算符.ppt_第2页
第2页 / 共39页
数据类型、表达式、运算符.ppt_第3页
第3页 / 共39页
点击查看更多>>
资源描述
C语言程序设计 李玉蓉Leanna 2 第2章数据类型 运算符与表达式 数据类型常量与变量不同类型数据间的转换运算符和表达式 3 数据类型 数据类型决定 1 数据占内存字节数2 数据取值范围3 其上可进行的操作 4 基本数据类型 整型 字符型 实型 有 无 说明 数据类型所占字节数随机器硬件不同而不同 上表以IBMPC机为例 5 常量与变量标识符定义 用来标识变量 常量 函数等的字符序列组成 只能由字母 数字 下划线组成 且第一个字母必须是字母或下划线大小写敏感不能使用关键字长度 最长32个字符 建议长度在8个字符以内 命名原则 见名知意如sum代表求和 average代表平均值不宜混淆如 与 o与0 例 判断下列标识符号合法性sumSumM D JohndayDate3daysstudent name 33lotus 1 2 3chara b above 123 M D John 3days 33 char 123 a b 6 一般用大写字母是宏定义预处理命令 不是C语句直接常量 整型常量实型常量字符常量字符串常量 如 definePRICE30 常量定义 程序运行时其值不能改变的量 即常数 分类 符号常量 用标识符代表常量定义格式 define符号常量常量 例符号常量举例 2 1 c definePRICE30main intnum total num 10 total num PRICE printf total d total 运行结果 total 300 7 整型常量 整常数 三种形式 十进制整数 由数字0 9和正负号表示 如123 456 0八进制整数 由数字0开头 后跟数字0 7表示 如0123 011十六进制整数 由0 x开头 后跟0 9 a f A F表示 如0 x123 0 xff 例12与12L 例30000为int型65536为longint型 整型常量的类型根据其值所在范围确定其数据类型在整常量后加字母l或L 认为它是longint型常量 问题 0123 100 x123 100 xff 10 8 实型常量 实数或浮点数 表示形式 小数形式 必须有小数点 如0 123 123 123 0 0 0 123 指数形式 e或E之前必须有数字 后面的指数必须为整数 一般形式为aEn a为尾数 n为阶码 如12 3e3 123E2 1 23e4 e 5 1 2E 3 5 实型常量的类型默认double型 有效位数为15 16位 在实型常量后加字母f或F 认为它是float型 规范化的指数形式在字母e 或E 之前的小数部分中 小数点左边应有一位 且只能有一位 非零的数字 aaa 9 字符常量定义 用单引号括起来的单个普通字符或转义字符 字符常量的值 该字符的ASCII码值 如 101 A 012 n 376 x61 a 60 0 483 例 A 101 x41 65 如 A 65 a 97 0 48 n 10 如 a A n 101 x2f 转义字符 反斜线后面跟一个字符或一个代码值表示 例转义字符举例 ch2 001 c ch2 004 c 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 运行结果 屏幕显示 打印机输出 10 字符常量与字符串常量不同 字符串常量定义 用双引号 括起来的字符序列存储 每个字符串尾自动加一个 0 作为字符串结束标志 11 变量概念 在程序运行过程中其值可以改变的量变量名变量定义的一般格式 数据类型变量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 变量的使用 先定义 后使用 例1intstudent stadent 19 Undefinedsymbol statent infunctionmain 例2floata b c c a b Illegaluseoffloatingpointinfunctionmain 变量定义位置 一般放在函数开头 12 整型变量占字节数随机器不同而不同 一般占一个机器字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 没有字符串变量 用字符数组存放 13 例 ch3 003 c 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 14 运算符和表达式 15 学习运算符应注意 运算符功能与运算量关系要求运算量个数要求运算量类型运算符优先级别结合方向结果的类型 16 算术运算符和表达式基本算术运算符 结合方向 从左向右优先级 1 2 3 4 说明 可为单目运算符时 右结合性两整数相除 结果为整数 要求两侧均为整型数据 例5 2 5 2 0 例5 2 5 2 1 10 5 1 5 5 2 例5 2 2 5 2 0 2 5 例5 2 1 5 2 11 10 15 1 05 5 2 17 自增 自减运算符 作用 使变量值加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 18 自增 自减运算符 作用 使变量值加1或减1种类 前置 i i 先执行i 1或i 1 再使用i值 后置i i 先使用i值 再执行i 1或i 1 说明 不能用于常量和表达式 如5 a b 结合方向 自右向左优先级 2 3 4 例 i i i 3 printf d i 3 例 i i 3 printf d i 19 赋值运算符和表达式简单赋值运算符符号 格式 变量标识符 表达式作用 将一个数据 常量或表达式 赋给一个变量 复合赋值运算符种类 含义 exp1op exp2 exp1 exp1opexp2 例a 3 d func c d 2 20 说明 结合方向 自右向左优先级 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 21 说明 结合方向 自右向左优先级 12左侧必须是变量 不能是常量或表达式 赋值表达式的值与变量值相等 且可嵌套 赋值转换规则 使赋值号右边表达式值自动转换成其左边变量的类型 例 a 12 a a a a 例 inta 2 a 4 1 a a a a 3 a 264等价于a a a a a a a 0等价于a a a a a a a a 3 22 逗号运算符和表达式形式 表达式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 23 逗号运算符和表达式形式 表达式1 表达式2 表达式n结合性 从左向右优先级 15逗号表达式的值 等于表达式n的值用途 常用于循环for语句中 例 includemain intx y 7 floatz 4 x y y 6 y z printf x d n x 运行结果 x 3 24 不同类型数据间的转换隐式转换 自动转换 什么情况下发生赋值转换 把一个值赋给与其类型不同的变量时运算转换 不同类型数据混合运算时输出转换 输出时转换成指定的输出格式函数调用转换 实参与形参类型不一致时转换运算转换规则 不同类型数据运算时先自动转换成同一类型 25 26 显式转换 强制转换 一般形式 类型名 表达式 例 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 精度损失问题 27 关系运算符和表达式关系运算符种类 结合方向 自左向右优先级别 例c a b c a b a b c a b ca 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 28 关系运算注意 例若a 0 b 0 5 x 0 3 则a x b的值为 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 29 关系运算注意 例注意区分 与 inta 0 b 1 if a b printf aequaltob elseprintf anotequaltob 例应避免对实数作相等或不等的判断如1 0 3 0 3 0 1 0结果为可改写为 fabs 1 0 3 0 3 0 1 0 1e 6 0 30 逻辑运算符和表达式逻辑运算符种类 逻辑运算真值表 C语言中 运算量 0表示 假 非0表示 真 运算结果 0表示 假 1表示 真 31 例ab x ya b x y a a b 优先级 结合方向 a x x b a b x y a b x y a a b 32 优先级 结合方向 例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 33 优先级 结合方向 短路特性 逻辑表达式求解时 并非所有的逻辑运算符都被执行 只是在必须执行下一个逻辑运算符才能求出表达式的解时 才执行该运算符 例a m a b n c d 结果m 0 n 1 34 条件运算符与表达式一般形式 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 条件运算符可嵌套如x 0 1 x 0 1 0 优先级 13 结合方向 自右向左如a b a c d c d a b a c d c d expr1 expr2 expr3类型可不同 表达式值取较高的类型 例x a b x 0 表达式值为 b x 0 表达式值为 a x y 1 1 5 x y 值为1 0 x y 值为1 5 35 36 C语言算符优先级和结合性 37 C语言算符优先级和结合性 续 38 C语言算符优先级和结合性 续 39 C语言算符优先级和结合性 续
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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