C语言-数据类型及其运算.ppt

上传人:max****ui 文档编号:10962993 上传时间:2020-04-16 格式:PPT 页数:57 大小:328.50KB
返回 下载 相关 举报
C语言-数据类型及其运算.ppt_第1页
第1页 / 共57页
C语言-数据类型及其运算.ppt_第2页
第2页 / 共57页
C语言-数据类型及其运算.ppt_第3页
第3页 / 共57页
点击查看更多>>
资源描述
张超 2010 11 14 数据类型及其运算 E mail jishzhang 数据类型及其运算 C的数据类型 基本类型 构造类型 指针类型 无值类型 及其定义方法 C运算符的种类 运算优先级和结合性 不同类型数据间的转换与运算 C表达式类型 赋值表达式 算术表达式 关系表达式 逻辑表达式 条件表达式 逗号表达式 和求值规则 基本类型详细 1 C语言的数据类型 数据类型决定 数据占据内存的字节数 即不同数据类型在内存中占据的数据不同数据的取值范围相应数据类型可进行的操作 考点 常量与变量 常量是指在程序运行过程中 其值不能改变的量 常量分为整型常量 实型常量 字符常量 字符串常量 符号常量5种 C语言中没有字符串变量 存放字符串使用字符数组 字面常量 直接常量 可以从字面即可判断例如 123 45 7 3e 2 a 符号常量 用标识符代表常量定义格式 define符号常量常量符号常量的定义一般用大写字母不是C语言 而是宏定义预处理命令返回图 考点 常量与变量 变量 变量的基本概念1 在程序运行过程中 其值可以改变的量称为变量2 一个变量应该有一个名字 在内存中占据一定的存储单元3 要区分变量名和变量值是两个不同的概念 考点 常量与变量 变量 例如 a 3变量名实际上是一个以一个名字对应代表一个地址 在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址 从变量中取值 实际上是通过变量名找到相应的内存地址 从该存储单元中读取数据 考点 常量与变量 变量 变量的操作1 变量的定义变量定义的一般格式 数据类型变量1 变量2 变量n 决定分配内存的字节数 合法的标识符 例如 inta 2 floatb c 考点 常量与变量 变量 2 变量的赋值在定义时赋值例如 在使用时赋值例如 inta 5 floatx y z 5 right Error inta 定义变量a a 12 给变量a赋值 考点 常量与变量 变量 变量使用的一般规则 变量一定要先定义 后使用 切忌随意定义变量 影响程序结构一般先在函数开头定义在函数中将要使用的变量 也可以在程序书写的时候定义变量 但尽量在写程序主体之前定义好自己需要的变量 使程序结构清晰 返回分类图 返回总大纲 基本类型的分类及特点 整型 实型 字符型 有 有 有 无 无 signed int signed short signed long unsignedint unsignedshort unsignedlong float double unsignedchar char 有 16 16 32 16 16 32 32 64 8 8 2147493648 2147493648 32768 32767 32768 32767 1 7e 308 1 7e308 0 65535 0 65535 0 4294967295 3 4e 38 3 4e38 128 127 0 255 基本类型的分类及特点 1 整型常量有三种表示形式 1 1十进制整数 十进制整常数没有前缀 由数字0 9和正负号表示以下各数是合法的十进制整常数 237 568 65535 1627 以下各数是不合法的十进制整常数 023 不能有前导0 23D 含有非十进制数码 基本类型的分类及特点 1 2八进制整数 八进制整常数必须以0开头 数码取值为0 7 通常是无符号数以下各数是合法的八进制数 015 十进制为13 0101 十进制为65 以下各数是不合法的八进制数 256 无前缀0 03A2 包含了非八进制数码 0127 出现了负号 1 3十六进制整数 十六进制整常数的前缀为0X或0 x 其数码取值为0 9 A F或a f以下各数是合法的十六进制整常数 0X2A 十进制为42 0XA0 十进制为160 以下各数是不合法的十六进制整常数 5A 无前缀0X 0X3H 含有非十六进制数码 基本类型的分类及特点 基本类型的分类及特点 整型常量的类型根据其值所在范围确定其数据类型默认数据类型为int型在整常量后加字母l或L 认为它是longint型常量 2 整型变量整型变量的基本类型符为int 我们根据数值在内存中占据空间的不同 将整型变量分为基本型 短整型 长整型基本型 以int表示短整型 以shortint或short表示长整型 以longint或long表示无符号型 类型说明符为unsigned 基本类型的分类及特点 如果不指定为unsigned 则默认为signed 此时signed可以不写 符号类型符和其他三个基本类型组合共可得出6种整型变量 有符号基本整数 signed int无符号基本整数unsignedint有符号短整型 signed short int 无符号短整型unsignedshort int 有符号长整型 signed long int 无符号长整型unsignedlong int 基本类型的分类及特点 整型变量的赋值操作 inta 定义一个变量aunsignedintb 定义一个无符号变ba 1200 将a赋值为1200b 100 将b赋值为100b 100 error b为无符号整型变量不能赋负值 基本类型的分类及特点 在变量定义时 应注意以下几点 允许在一个类型说明符后 定义多个相同类型的变量 各变量名之间用逗号间隔 类型说明符与变量名之间至少用一个空格间隔最后一个变量名之后必须以 号结尾变量名应有意义 切忌随便定义变量名变量定义时注意数据范围 不要造成数据溢出 基本类型的分类及特点 3 实型常量实型也称为浮点型 实型常量也称为实数或者浮点数 有两种表示形式 3 1十进制小数形式 由数字和小数点组成例如 0 0 25 0 5 789 0 13 5 0 300 267 8230等均为合法的实数 基本类型的分类及特点 3 2指数形式 由十进制数 加阶码标志 e 或 E 以及阶码 只能为整数 可以带符号 组成 e或E之前必须有数字以下是合法的实数 2 1E5 等于2 1 105 3 7E 2 等于3 7 10 2 0 5E7 等于0 5 107 2 8E 2 等于 2 8 10 2 以下是不合法的实数 E7 阶码标志E之前无数字 53 E3 负号位置不对 2 7E 无阶码 基本类型的分类及特点 实型常量的类型默认数据类型为double型在实型常量后加字母f或F 认为它是float型 基本类型的分类及特点 4 实型变量我们根据数值在内存中占据空间的不同 将整型变量分为单精度型 双精度型 长双精度型单精度型 以float表示双精度型 以double表示长双精度型 以longdouble表示 基本类型的分类及特点 实型数据的四舍五入由于实型变量是由有限的存储单元组成的 因此能提供的有效数字总是有限的 在有效位以外的数字将被舍去 由此就会产生一些误差floata 123456 789e5 b a 20 输出结果b和a相同 基本类型的分类及特点 实型变量的赋值操作 floata 123 5 doubleb 23 9 注意 C编译系统将实型常量作为双精度来处理 所以为了提高运算速度 可以在数的后边加字母f或F 让系统按单精度处理 基本类型的分类及特点 5 字符常量字符常量是用单引号括起来的一个字符例如 a b 字符常量的特点 字符常量只能用单引号括起来 不能用双引号或其它括号字符常量只能是单个字符 不能是字符串字符可以是字符集中任意字符 基本类型的分类及特点 基本类型的分类及特点 一种特殊形式的字符常量 转义字符 转义字符 反斜线后面跟一个字符或一个代码值表示 6 字符变量字符变量用来存储字符常量 但只能存储单个字符 类型说明符是char定义形式 chara 赋值操作 a a 基本类型的分类及特点 7 字符数据在内存中的存储形式及使用方法每个字符变量被分配一个字节的内存空间 因此只能存放一个字符 但这个字符并不是将该字符本身放到内存中 而是将该字符相对应的ASCII码放到内存中例如 a a 在内存中实际是将 a 的ASCII码值97存入内存中 类似于整数的存储 基本类型的分类及特点 char与int数据间可进行算术运算 语言允许对整型变量赋以字符值 也允许对字符变量赋以整型值 在输出时 允许把字符变量按整型量输出 也允许把整型量按字符量输出例如 chartest1 test2 test1 a test2 98 test1 97 test2 b 基本类型的分类及特点 实际应用 大小写字母的转换 大写字母和小写字母的ASCII码值相差32 A A a A 32 相当于a a 基本类型的分类及特点 8 字符串常量字符串常量是由一对双引号括起的字符序列例如 china c语言 注意 每个字符串尾自动加一个 0 作为字符串结束标志 基本类型的分类及特点 字符串常量和字符常量的主要区别 字符常量由单引号括起来 字符串常量由双引号括起来字符常量只能是单个字符 字符串常量则可以含一个或多个字符可以把一个字符常量赋予一个字符变量 但不能把一个字符串常量赋予一个字符变量 在 语言中可以用一个字符数组来存放一个字符串常量 基本类型的分类及特点 字符常量占一个字节的内存空间 字符串常量占的内存字节数等于字符串中字节数加1 增加的一个字节中存放字符 0 ASCII码为0 是字符串结束的标志例如 a 在内存中的存放情况为 a 在内存中的存放情况为 a 基本类型的分类及特点 返回目录 不同数据类型之间的转换 不同类型的变量之间可以相互转换 分为 隐式转换显式转换 1 隐式转换又称为自动转换 有编译系统自动完成运算转换 不同类型数据混合运算时赋值转换 把一个值赋给与其类型不同的变量时输出转换 输出时转换成指定的输出格式函数调用转换 实参与形参类型不一致时转换 不同数据类型之间的转换 转换规则 若参与运算量的类型不同 则先转换成同一类型 然后进行运算转换按数据长度增加的方向进行 以保证精度不降低所有的浮点运算都是以双精度进行的 即使仅含float单精度量运算的表达式 也要先转换成double型 再作运算 不同数据类型之间的转换 char型和short型参与运算时 必须先转换成int型在赋值运算中 赋值号两边量的数据类型不同时 赋值号右边量的类型将转换为左边量的类型 不同数据类型之间的转换 说明 必定的转换 运算对象类型不同时转换 不同数据类型之间的转换 例 inti floatf doubled longl 10 a I f d l 不同数据类型之间的转换 练习 charch inti floatf doubled ch i f d f i 不同数据类型之间的转换 2 显式转换又称为强制转换 是通过类型转换运算来实现的一般形式 类型名 表达式 功能 把表达式的运算结果强制转换成类型说明符所表示的类型例如 int x y int 3 6 不同数据类型之间的转换 在使用强制转换时应注意的问题 类型说明符和表达式都必须加括号 单个变量可以不加括号 无论是强制转换或是自动转换 都只是为了本次运算的需要而对变量的数据长度进行的临时性转换 而不改变数据说明时对该变量定义的类型 即强制转换得到所需类型的中间变量 原变量类型不变从较高类型向较低类型转换时可能发生精度损失 不同数据类型之间的转换 返回目录 算术运算符和表达式 C语言的运算符范围很广 算术运算符只是其中的一部分 1 基本算术运算符 加法运算符 或正值运算符 减法运算符 或负值运算符 乘法运算符 除法运算符 求余运算符注意 两侧必须都为整型数据 算术运算符和表达式 2 算术表达式和运算符的优先级与结合性算术表达式 用算术运算符和括号将运算对象 也称操作数 连接起来的 符合C语法规则的式子例如 a b 34 2 算术运算符和表达式 运算符的优先级 在表达式求值的时候 按照运算符的优先级别高低次序执行 如果运算量两侧的运算符优先级相同时 则按运算符的结合性所规定的结合方向处理例如 a b ca b c d 算术运算符和表达式 运算符的结合性 语言中各运算符的结合性分为两种 即左结合性 自左至右 和右结合性 自右至左 例如 左结合性 a b c右结合性 x y z 5注意和intx y z 5区别应对右结合性的运算符加以注意 算术运算符和表达式 3 自增 自减运算符作用 使变量值加1或减1分类 ii自增1后再参与其它运算 ii自减1后再参与其它运算 i i参与运算后 i的值再自增1 i i参与运算后 i的值再自减1 算术运算符和表达式 举例 j 3 k j j 3 k j a 3 b 5 c a b a 3 b 5 c a b 注意 不能用于常量和表达式 j 4 k 4 j 4 k 3 c 20 c 15 算术运算符和表达式 4 赋值运算符和赋值表达式简单的赋值运算符一般形式为 变量 表达式作用 将一个数据 常量或表达式 赋给一个变量例如 a 4 c a b 算术运算符和表达式 复合的赋值运算符 一般形式 变量双目运算符表达式相当于 变量 变量运算符表达式例如 a ba a b 算术运算符和表达式 5 逗号运算符和逗号表达式一般形式 表达式1 表达式2 表达式n表达式n的值就是整个逗号表达式的值例如 x 4 5 23x 23inta 2 b 4 c 6 x y y x a b b c y 10 算术运算符和表达式 返回目录 小结 1 的数据类型基本类型 构造类型 指针类型 空类型2 基本类型的分类及特点3 常量后缀L或l长整型U或u无符号数F或f浮点数 4 常量类型整数 长整数 无符号数 浮点数 字符 字符串 符号常数 转义字符5 数据类型转换自动转换 在不同类型数据的混合运算中 由系统自动实现转换 由少字节类型向多字节类型转换 不同类型的量相互赋值时也由系统自动进行转换 把赋值号右边的类型转换为左边的类型强制转换 由强制转换运算符完成转换 小结 6 运算符优先级和结合性一般而言 单目运算符优先级较高 赋值运算符优先级低 算术运算符优先级较高 关系和逻辑运算符优先级较低 多数运算符具有左结合性 单目运算符 三目运算符 赋值运算符具有右结合性 小结 7 表达式表达式是由运算符连接常量 变量 函数所组成的式子 每个表达式都有一个值和类型 表达式求值按运算符的优先级和结合性所规定的顺序进行 小结
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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