C语言数据类型ppt课件

上传人:钟*** 文档编号:4972395 上传时间:2020-01-16 格式:PPT 页数:62 大小:1.66MB
返回 下载 相关 举报
C语言数据类型ppt课件_第1页
第1页 / 共62页
C语言数据类型ppt课件_第2页
第2页 / 共62页
C语言数据类型ppt课件_第3页
第3页 / 共62页
点击查看更多>>
资源描述
第二章数据类型运算符和表达式 1 第二章数据类型 运算符和表达式 内容提要数据类型常量与变量运算符与表达式 2 2 1数据类型 数据类型总表 数据类型决定 1 数据占内存字节数2 数据取值范围3 其上可进行的操作 3 说明 数据类型所占字节数随机器硬件不同而不同 上表以IBMPC机为例 基本数据类型 2 1数据类型 4 2 2常量与变量 数据是程序的处理对象C语言将数据分为常量与变量 5 2 2 1常量1 常量的定义及分类定义 程序运行的过程中 其值不能改变的量 分类 整型常量实型常量字符常量字符串常量符号常量 2 2常量与变量 6 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常量与变量 7 整型常量的说明 1 空白字符不可以出现在整数数字之间 2 根据其值所在范围确定其数据类型 3 在整常量后加字母l或L 认为它是longint型常量 例如30000为int型65536为longint型79L 012L为longint型 2 2常量与变量 8 3 实型常量实常数或浮点数 是一个十进制表示的符号实数表示形式 十进制小数形式 digits digits 如0 123 123 123 0 0 0 123 指数形式 包括整数部分 尾数部分和指数部分 digits digits E e digits 小数点之前是整数部分 小数点之后是尾数部分 小数点在没有尾数时可省略 如12 3e3 123E2 2 2常量与变量 9 实型常量的说明 1 实型常量采用十进制小数形式表示时 必须有小数点 例如 123 是实型常量 而123是整型常量 2 采用指数形式表示时 在E或e之前必须要有数字 且之后的指数必须为整数 例如 E6 e6 e等都是不合法的 3 实型常量的整数部分为0时可以省略 如下形式是允许的 57 0075e2 125 175E 2 4 所有的实型常量均被看作是双精度类型 double 2 2常量与变量 10 4 字符常量定义 用单引号括起来的单个普通字符或转义字符 分为一般字符常量和特殊字符常量一般字符常量 如 a 9 等 单引号只起定界作用并不表示字符本身 中间的字符可以是除单引号 和反斜杠 以外的数字 字母等C语言字符集中包含的所有可显示字符 特殊字符常量 也叫转义字符 是C语言中表示字符的一种特殊形式 其含义为将反斜杠 后面的字符转换成另外的意义 2 2常量与变量 11 字符常量的值 该字符的ASCII码值 如 A 65 a 97 0 48 n 10 2 2常量与变量 12 如 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常量与变量 13 字符常量与字符串常量不同 5 字符串常量定义 用双引号 括起来的字符序列存储 每个字符串尾自动加一个 0 作为字符串结束标志 例 charch ch A 例 charch ch A 2 2常量与变量 14 6 符号常量 1 标识符定义 用来标识变量 常量 函数等的字符序列组成 只能由字母 数字 下划线组成 且第一个字母必须是字母或下划线大小写敏感不能使用关键字长度 最长32个字符命名原则 见名知义不宜混淆如1与l o与0 2 2常量与变量 15 在C语言中 允许将程序中的常量定义为一个标识符 称为符号常量 在使用符号常量前必须先加以定义 一般情况下 符号常量使用大写英文字母表示 其定义的一般形式为 define例如 definePRICE35 2 2常量与变量 16 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常量与变量 17 变量定义位置 一般放在函数开头 2 2常量与变量 18 与常量类似 变量也有不同的类型 一般可以分为以下三种类型 整型变量实型变量字符变量 2 2常量与变量 19 1 整型变量 1 整型变量的分类基本型短整型长整型无符号整型 基本型 类型说明符为int 在内存中占2个字节 短整型 类型说明符为shortint或short 所占字节和取值范围均与基本型相同 长整型 类型说明符为longint或long 在内存中占4个字节 无符号整型 类型说明符为unsigned 无符号基本型 类型说明符为unsignedint或unsigned 无符号短整型 类型说明符为unsignedshort 无符号长整型 类型说明符为unsignedlong 2 2常量与变量 20 例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常量与变量 21 intx x 10 则变量x的值10在内存中的存放形式 intx x 10 则变量x的值10在内存中的存放形式 3 整型数据在内存中的存放形式 2 2常量与变量 22 例2 2整型数据的溢出问题 includeintmain intx y x 32767 y x 1 printf d d n x y return0 运行结果 32768原因 一个int型变量只能容纳 32768到32767范围内的数 无法表示超过这个范围的数 4 整型数据的溢出 2 2常量与变量 23 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常量与变量 24 例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常量与变量 25 例a D a 68 x A 5 x 65 5 s G s 33 71 字符变量存放字符ASCII码char与int数据间可进行算术运算 没有字符串变量 用字符数组存放 3 字符变量 2 2常量与变量 26 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常量与变量 27 例 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常量与变量 28 运算符的分类 2 3运算符与表达式 29 定义 由常量 变量 函数 运算符和括号组合起来的 符合C语法规则的式子称为表达式 一个表达式有一个值以及其对应的类型表达式求值首先进行优先级高的运算再进行优先级低的运算 然后对于优先级相同的运算按结合方向进行运算 结合方向 左结合 右结合例如 2 3运算符与表达式 30 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运算符与表达式 31 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运算符与表达式 32 例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运算符与表达式 33 2 算术表达式定义 用算术运算符和括号将运算对象连接起来的 符合C语法规则的式子称为算术表达式 其中的运算对象包括常量 变量 函数等 例如 x y x 2 y sin x sin y 等都是算术表达式 2 3运算符与表达式 34 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运算符与表达式 35 种类 结合方向 自左向右优先级别 关系运算符优先级低于算术运算符 2 3 2关系运算符及关系表达式1 关系运算符 例 c a b等价于c a b a b c a b ca bca b c 2 3运算符与表达式 36 关系运算结果 1 真 和0 假 例2 8计算下列关系表达式的值 1 10 10 2 10 10 3 10 10 10 4 3 8 9 5 7 3 2 3运算符与表达式 37 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运算符与表达式 38 种类 逻辑运算真值表优先级 高2 11 低12 2 3 3逻辑运算符及逻辑表达式1 逻辑运算符 2 3运算符与表达式 39 例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运算符与表达式 40 位运算是指进行二进制位的运算例如 将一个存储单元中的各二进制位左移 右移 两个数按位相加等 说明 1 位运算符中除 以外 均为二目 元 运算符 即要求两侧各有一个运算量 2 运算量只能是整型或字符型的数据 不能为实型数据 附 位运算符 2 3运算符与表达式 41 位运算中的 和 的真值表与逻辑运算等价 唯一不同的是位运算是逐位进行运算的 异或位运算符 的真值表 2 3运算符与表达式 42 定义 用逻辑运算符短路特性 逻辑表达式求解时 并非所有的逻辑运算符都被执行 只是在必须执行下一个逻辑运算符才能求出表达式的解时 才执行该运算符 例a m a b n c d 结果m 0 n 1 2 逻辑表达式 2 3运算符与表达式 43 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运算符与表达式 44 如果赋值运算符两侧的数据类型不一致 但都是数值型或字符型时 系统要进行类型转换 将浮点型数据 包括单 双精度 赋给整型变量时 舍弃浮点数的小数部分 如 为整型变量 执行 i 3 56 的结果是使 的值为 以整数形式存储在整型变量中 将整型数据赋给单 双精度变量时 数值不变 但以浮点数形式存储到变量中 即用0补足有效数字位 如 i为float型变量 执行 i 3 的结果i 3 000000 以单精度浮点数形式存储到i中 赋值运算符类型转换 2 3运算符与表达式 45 将一个double型数据赋给float变量时 截取其前面7位有效数字 存放到float变量的存储单元 4个字节 中 但应注意数值范围不能溢出 如果将一个float型数据赋给double变量时 数值不变 有效位数扩展到16位 在内存中以8个字节存储 2 3运算符与表达式 46 字符型数据赋给整型变量时 由于字符只占1个字节 而整型变量为 个字节 因此将字符数据 个二进位 放到整型变量存储单元的低 位中 第一种情况 如果字符型为无符号的字符型 则将字符的 位放到整型变量低 位 高 位补零 第二种情况 如果字符型为带符号的 则将字符的 位放到整型变量低 位 高 位补符号位 即 符号扩展 若字符最高位为0 则整型变量高8位补0 若字符最高位为1 则高8位全补1 2 3运算符与表达式 47 将一个int short long型数据赋给一char型变量 只将其低8位原封不动地送到char型变量 即截断 将带符号的整型数据 int型 赋给long型变量时 要进行符号扩展 将整型数的16位送到long型低16位中 反之 若将一个long型数据赋给一个int型变量 只将long型数据中低16位原封不动地送到整型变量 即截断 2 3运算符与表达式 48 将unsignedint型数据赋给longint型变量时 不存在符号扩展问题 只需将高位补 即可 将unsignedint型数据赋给int型变量时 将数据原封不动的送到整型变量中 但如果数据范围超过相应整型的范围 会出现错误 将非unsigned型数据赋给长度相同的unsigned型变量 也是原样照赋 连原有的符号位也作为数值一起传送 2 3运算符与表达式 49 定义 由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式 例如 x 10 x y 10 说明 赋值运算符左侧必须是变量 不能是常量或表达式 赋值转换规则 使赋值号右边表达式值自动转换成其左边变量的类型 例floatf inti i 10 f i 则f 10 0 错误 3 x 2 y a b 3 2 赋值表达式 2 3运算符与表达式 50 赋值表达式的值与变量值相等 且可嵌套 例 a 12 a a a a a 264等价于a a a a a a 2 3运算符与表达式 51 复合的赋值运算符在 前面加上其他运算符种类 一般形式 变量双目运算符 表达式它等效于 变量 变量运算符表达式 例2 12假设变量x 10 y 20 计算下列复合的赋值表达式的值 1 x 10 2 x y 20 3 x x x 10 2 3运算符与表达式 52 自增 自减运算符 作用 使变量值加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运算符与表达式 53 一般形式 expr1 expr2 expr3由常量 变量 函数 运算符和括号组合起来的 符合C语法规则的式子称为表达式 执行过程 2 3 6条件运算符及条件表达式 2 3运算符与表达式 54 结合方向 自右向左例2 13假设变量x 10 y 20 z 30 计算下列条件表达式的值 1 x 10 100 200 2 x 10 x z y 20 y z z 2 3运算符与表达式 55 一般形式 表达式1 表达式2 表达式n结合性 从左向右优先级 15逗号表达式的值 等于表达式n的值例如 1 x y 1 y 1 2 y 20 x y y 10 10 y 2 3 7逗号运算符及逗号表达式 2 3运算符与表达式 56 例1a 3 5 a 4a 3 5 a 4 a 5例2x a 3 6 3 x a 3 6 a例3a 1 b 2 c 3 printf d d d a b c printf d d d a b c b c 例2 14计算下列逗号表达式的值 1 x 10 x 10 2 x 1 2 x 3 x 4 2 3运算符与表达式 57 求字节数运算符 sizeof 是C语言提供的一种特殊的运算符 是单目运算符 求字节数运算符与操作数结合在一起构成的式子称为求字节数表达式 一般形式sizeof 表达式 或sizeof 数据类型名 例sizeof int sizeof a sizeofx 2 3 8求字节数运算符及求字节数表达式 2 3运算符与表达式 58 一般形式 类型说明符 表达式 功能 把表达式的运算结果强制转换成类型说明符所表示的类型 例如 float a int x y 说明 int x若原来x的类型为float型 转换后得到一个中间变量 它的值等于x的整数部分 而变量x的值不变 2 3 9强制类型转换运算符及表达式 2 3运算符与表达式 59 C语言运算符的优先级与结合性 60 C语言运算符的优先级 61 由各种不同类型的表达式根据C语法规则复合在一起构成的更加复杂的表达式称为复合表达式 如 x y 20 z 2 其结果x 40 附 复合表达式 62
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 大学资料


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

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


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