C程序设计(第四版)第2章数据类型及其运算.ppt

上传人:max****ui 文档编号:6330815 上传时间:2020-02-23 格式:PPT 页数:38 大小:738.81KB
返回 下载 相关 举报
C程序设计(第四版)第2章数据类型及其运算.ppt_第1页
第1页 / 共38页
C程序设计(第四版)第2章数据类型及其运算.ppt_第2页
第2页 / 共38页
C程序设计(第四版)第2章数据类型及其运算.ppt_第3页
第3页 / 共38页
点击查看更多>>
资源描述
第二章数据类型及其运算 基本符号基本数据类型常量与变量运算符和表达式数据类型转换 2 1基本符号 2 1 1字符集C语言中可以使用的合法字符有 1 字母和数字小写字母 a b c z大写字母 A B C Z数字 0 1 2 92 特殊字符 3 空白字符包括空格 换行符和制表符 2 1基本符号 2 1 2标识符标识符 在程序设计中 常用具有一定意义的名字来标识程序中的变量 函数 数组以及由用户自己定义的数据类型等 以方便在程序设计中按名字来访问这些对象 这些对象的名字被称为标识符 2 1基本符号 C语言中标识符的命名规则 C语言规定 标识符只能由字母 数字和下划线三种字符组成 且第一个字符必须是字母或者下划线 C语言中标识符的长度没有统一规定 随系统而不同 ANSIC规定标识符长度不得大于32个字符 而PC机中通常是前8个字符有效 用户选用的标志符不能是C语言的关键字 2 1基本符号 在命名一个标识符时 应注意以下一些问题C语言是大小写敏感的 所以大写字母和小写字母被认为是两个不同的字符 在选择标识符时 应注意做到 见名知意 即选择有意义的英文单词或者缩写作标识符 以增加程序的可读性 习惯上 变量名用小写字母表示 2 1基本符号 2 1 3关键字关键字又称保留字 是一类特殊的标识符 它们是由系统定义 供系统专用的 都具有特定的含义 2 1基本符号 C语言的关键字如下 2 2数据类型 数据类型决定了数据占用内存的大小和布局 也就决定了它的取值范围 以及在这些值上允许进行的操作 C语言提供了丰富的数据类型 具体如下表所示 本章主要介绍基本数据类型 在下表中 列出了每种基本数据类型的关键字 占用的字节数以及取值范围 2 2数据类型 基本数据类型 2 3常量 常量 在程序运行过程中 其值不能改变的量称为常量 常量也有数据类型 C语言规定常量的类型有四种 整型常量 实型常量 字符常量和字符串常量 常量不需要预先定义 在需要的地方直接使用即可 常量的类型由其字面格式决定 2 3常量 2 3 1整型常量1 整型常量的表示形式 在C语言中有三种数制表示形式 十进制整数 由数字0 9和正负号表示 八进制整数 由数字0开头 后跟数字0 7表示 十六进制整数 由0 x 数字的0和字母x x大小写均可 开头 后跟0 9 a f或A F表示 2 整型常量的类型 一个整型常量 如果其值在 32768 32767范围内 认为它是int型 一个整型常量 如果超出了上述范围 而在 2147483648 2147483647范围内 则认为它是longint型 在一个整型常量后面加一个字母l或L 则认为它是longint型常量 例如 3L就是一个longint型的常量 2 3常量 2 3 2实型常量1 实型常量的表示形式 小数形式 由数字和小数点组成 例如 12 3 3 0 0 0等 指数形式 由尾数部分 字母e或E 指数部分组成 例如 123 4用指数形式可表示为 1 234E 2 0 0123可以表示为 1 23e 2 在使用指数形式时需要注意 字母e或E之前必须有数字 e后面必须是整数 如e5 1 23e2 5等都是不合法的指数形式 2 实型常量的类型 默认情况下 实型常量为double类型 若要表示float类型的常量 需要加F或f 例如 1 23f 2 3常量 2 3 3字符常量字符常量是用单引号括起来的单个字符 a 9 等都是字符常量 一个字符常量在存储时占用一个字节 在该字节中存放的并不是字符本身 而是该字符的ASCII码值 由于字符常量存储的是一个整数 所以它可以像整数一样参加数值运算 例如 a 5的结果为102 C语言中还有一类特殊的字符常量 就是以 开头的字符序列 称为转义字符 常见的转义字符如下表所示 2 3常量 转义字符 2 3常量 2 3 3字符串常量用双引号括起来的字符序列称为字符串常量 例如 Hello Iamastudent a 123 等都是字符串常量 字符串常量在内存中存放时 除存储字符串中的字符外 还在每一个字符串的结尾加一个 字符串结束标志 以便系统判断字符串是否结束 C规定以字符 0 作为字符串的结束标志 如果有一个字符串 Hello 此字符串中有6个字符 但在内存中存放时会占用7个字节 如下图所示 2 4变量 在程序运行过程中 其值可以改变的量称为变量 在使用一个变量时 应遵循先定义后使用的原则 变量定义的格式 数据类型变量名1 变量名2 变量名n 决定分配字节数和数的表示范围 合法标识符 2 4变量 变量定义位置 一般放在函数开头当在程序中定义一个变量时 系统会根据该变量的类型给变量分配相应的内存空间 然后可以通过该变量名来访问此内存单元 在使用一个变量时 它应该有一个确定的值 可以通过变量初始化来实现 一个变量的初始化是指在定义一个变量时 给变量赋初值 2 4变量 2 4 1整型变量整型变量用来存放整型数据 用关键字int说明 例如 inta b c C语言在int这个基本整型基础上 通过在int前加修饰符 又扩展了一些新的数据类型 修饰符有long short unsigned等 2 4 2实型变量实型变量按其能够表示的数的精度 分为单精度实型变量和双精度实型变量 单精度实型变量用关键字float定义 占用4个字节 例如 floatf1 f2 双精度实型变量用关键字double定义 占用8个字节 例如 doubled1 d2 2 4变量 2 4 3字符变量字符变量用来存放单个字符 由关键字char定义 例如 charc1 c2 一个字符变量占用一个字节的存储空间 只能存放一个字符 在这个字节中存放的是这个字符的ASCII码值 所以字符变量可以像整型变量一样使用 2 5运算符和表达式 运算符 用来表示各种运算的符号称为运算符 2 5运算符和表达式 在学习运算符时 应从以下几个方面进行考虑 运算符的功能 运算符与操作数的关系 一是运算符所需操作数的个数 单目运算符 即只需一个操作数的运算符 例如 x 双目运算符 需要两个操作数的运算符 例如 x y 三目运算符 需要三个操作数的运算符二是运算符所要求的操作数的类型 运算符的优先级 决定了表达式求值的次序 运算符的结合方向 在优先级相同的情况下 应按照 结合方向 来处理 结合方向规定了一个运算符自左向右 左结合性 求值 还是自右向左 右结合性 求值 结果的类型 2 5运算符和表达式 2 5 1算术运算符与算术表达式基本算术运算符 结合方向 从左向右优先级 2 3 4 说明 为单目运算符时 右结合性两整数相除 结果为整数 要求两侧均为整型数据 2 5运算符和表达式 自增自减运算符功能 自增运算符 使单个变量的值增 自减运算符 使单个变量的值减1 种类 前置运算 运算符放在变量之前 变量 变量 这种运算的功能是 先使变量的值增 或减 1 然后再以变化后的值参与其它运算 即先增减 后运算 后置运算 运算符放在变量之后 变量 变量 这种运算的功能是 变量先参与其它运算 然后再使变量的值增 或减 1 即先运算 后增减 2 5运算符和表达式 优先级是2 高于其他双目算术运算符结合方向为右结合说明 自增自减运算符只能用于变量 不能用于常量或表达式 例如 5或者 x y 都是不合法的表达式 C语言中 表达式中组合运算符的规则 自左向右取尽可能多的字符组成运算符 例如 a b 相当于 a b 2 5运算符和表达式 2 5 2赋值运算符与赋值表达式简单赋值运算符 是简单赋值运算符 赋值表达式的格式为 变量 表达式功能 将右侧表达式的值赋给左侧的变量 赋值运算符的优先级为14 结合方向为右结合 2 5运算符和表达式 说明 左侧必须是变量 不能是表达式或常量 当左侧变量的类型与右侧表达式的类型不一致时 在赋值时会自动进行类型转换 先把右侧表达式的值转换成左侧变量的类型再进行赋值 任何一个表达式都应该有一个确定的值 赋值表达式也不例外 它的值就是被赋值变量的值 所以在C语言中 允许出现连续赋值的情况 以下语句是合法的 inta b c a b c 5 2 5运算符和表达式 复合赋值运算符复合赋值运算符包括 复合算术赋值运算符 复合位运算赋值运算符 2 5运算符和表达式 2 5 3关系运算符与关系表达式种类 关系运算符全部是双目运算符 作用是比较两个操作数的大小 若关系成立 则结果为 真 用1表示 否则结果为 假 用0表示 关系运算符中 的优先级较高为6 的优先级较低为7 结合方向均为左结合 2 5运算符和表达式 使用关系运算符时需要注意以下几个方面 如果两个操作数是数值型的 则按其大小进行比较 如果是字符型的 则按字符的ASCII码值进行比较 关系表达式的结果为逻辑值 真 或者 假 用1和0表示 这里的1和0可以作为数值参加其它运算 应避免对实数作相等或不等的判断 例如 1 0 3 0 3 0 1 0的结果并不是1而是0 是因为实数存在存储误差 所以当需要对实数比较时 可以这样写 fabs 1 0 3 0 3 0 1 0 1e 6 注意区分 与 2 5运算符和表达式 2 5 4逻辑运算符与逻辑表达式种类 逻辑非 是单目运算符 优先级为2 逻辑与 和逻辑或 是双目运算符 优先级分别为11 12逻辑表达式的值是逻辑值 真 或 假 用1和0表示 但在计算一个逻辑表达式的值时 判断操作数的真假时 只有0为假 非0都为真 的结合方向为右结合 和 的结合方向为左结合 逻辑运算符的短路特性 在对一个逻辑表达式求解时 所有的逻辑运算符并不一定都被执行 只是在必须执行下一个逻辑运算符才能求出表达式的值时 才执行该运算符 2 5运算符和表达式 逻辑运算符的运算规则是用真值表来表示的 2 5运算符和表达式 2 5 5逗号运算符与逗号表达式逗号运算符 是C语言提供的一种特殊的运算符 用它将两个表达式连接起来就称为逗号表达式 逗号表达式的格式为 表达式1 表达式2逗号运算符是双目运算符 优先级为15 结合方向为左结合逗号表达式的求值过程是 先求解表达式1 再求解表达式2 整个逗号表达式的值是表达式2的值 用逗号连接的表达式1和表达式2都可以是逗号表达式 需要注意的是 并不是任何地方出现的逗号都表示逗号运算符 例如函数参数中 逗号是作为分隔符使用的 2 5运算符和表达式 2 5 7条件运算符与条件表达式条件运算符是C语言中唯一的三目运算符 条件表达式的一般格式为表达式1 表达式2 表达式3优先级是13 结合方向为右结合 条件表达式的求解过程为 先判断表达式1的值 如果为真 表达式2的值就是整个条件表达式的值 否则表达式3的值是整个条件表达式的值 2 5运算符和表达式 2 5 8长度运算符sizeofsizeof是单目运算符 功能是测试变量或者某种数据类型在内存中占用的字节数 sizeof的一般格式为 sizeof 变量 测试变量在内存中占用的字节数 sizeof 类型标识符 测试数据类型在内存中占用的字节数 2 5运算符和表达式 2 5 9数据类型转换自动类型转换自动类型转换是由编译器自动完成的类型转换 自动类型转换发生在以下几种情况 不同数据类型混合运算中 在这种情况下 首先将不同的数据类型转换为同种数据类型 然后再进行运算 转换规则如下图所示 2 5运算符和表达式 2 5运算符和表达式 用一种类型的表达式赋值给另一种类型的变量 在这种情况下 先把表达式的值转换为变量的类型 然后再进行赋值 在发生函数调用时 实参的类型与形参的类型不一致 在这种情况下 把实参的类型转换为形参的类型 然后再进行数据传递 函数的类型与函数的返回值的类型不一致 在这种情况下 把函数的返回值转换为函数的类型 2 5运算符和表达式 强制类型转换强制类型转换是由程序员显式指出的类型转换 转换的格式为 类型标识符 表达式 需要注意的是 强制类型转换得到所需类型的中间变量 原变量类型不变
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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