




免费预览已结束,剩余38页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章数据类型 运算符与表达式 C语言程序设计第三章数据类型 运算符与表达式 C的数据类型 常量与变量 整型数据 实型数据 字符型数据 变量赋初值 各种数值型数据间的混合运算 算术运算符和算术表达式 赋值运算符和赋值表达式 逗号运算符和逗号表达式 C语言程序设计第三章数据类型 运算符与表达式 3 1C的数据类型 数据类型决定 1 数据占内存字节数2 数据取值范围3 可以进行的操作 常量和符号常量定义 程序运行过程中 其值不能被改变的量 常数 分类 直接常量 符号常量 3 2常量与变量 C语言程序设计第三章数据类型 运算符与表达式 符号常量 用标识符代表常量一般用大写字母 PRICE PI定义格式 define符号常量常量其值在作用域内不能改变和再赋值 例3 1符号常量举例 definePRICE30 includevoidmain intnum total num 10 total num PRICE printf total d n total 符号常量的优点是 见名知意 一改全改 C语言程序设计第三章数据类型 运算符与表达式 变量定义 其值可以改变的量 定义格式 数据类型变量名 变量应该有名字 并在内存中占据一定的存储单元 变量名和变量值有不同的含义变量名实为一个符号地址 例变量的使用main inta a 3 printf a d a C语言程序设计第三章数据类型 运算符与表达式 标识符定义 标识变量名 符号常量名 函数名 数组名 文件名的字符串序列 名字 命名规则 只能由字母 数字 下划线组成 且第一个字符必须是字母或下划线大小写字母含义不同 一般用小写不能使用关键字尽管VC最长可以255 建议长度不超过8个字符使用 先定义 后使用 标识符应该 见名知意 如total max标识符应该 不宜混淆 如l与1 O与0 这些标识符合法吗 1A M D John 123 33 Tatol int max C语言程序设计第三章数据类型 运算符与表达式 3 3整型数据整型常量 整常数 的三种表示方法十进制整数 由数字0 9和正负号表示 如123 456 0八进制整数 由数字0开头 后跟数字0 7表示 如0123 011十六进制整数 由0 x 0X 开头 后跟0 9 a f A F 表示 如0 x123 0 xff C语言程序设计第三章数据类型 运算符与表达式 补充知识 C语言程序设计第三章数据类型 运算符与表达式 位 一位二进制数在计算机中称为1位 bit 比特 1Byte 字节 8bit1KB 1024Byte1MB 1024KB1GB 1024MB 字节 内存以字节为单元组成每个字节有一个地址一个字节一般由8个二进制位组成 1byte 8bit 每个二进位的值是0或1 C语言程序设计第三章数据类型 运算符与表达式 C语言程序设计第三章数据类型 运算符与表达式 计算机中常用的数制 数据与编码方式在计算机中对信息的处理就是对数据的处理 数据是信息在计算机内部的表示形式人们通常使用的是十进制计数制 例如 555 55 5X102 5X101 5X100 5X10 1 5X10 2 进位制二进制八进制十进制十六进制规则逢二进一逢八进一逢十进一逢十六进一基数R 2R 8R 10R 16数码0 10 1 2 70 1 2 90 1 2 9 A B C D E F权2i8i10i16i 计算机中常用的各种进位计数制 C语言程序设计第三章数据类型 运算符与表达式 0000010001200103001140100501016011070111810009100110 A 101011 B 101112 C 110013 D 110114 E 111015 F 1111 00001001201030114100510161107111 十六进制 八进制 说明 C语言程序设计第三章数据类型 运算符与表达式 在计算机中十进制数 数据的输入和输出二进制数 数据的存储和运算 常识 八进制 十六进制数 一种计数方法 以弥补二进制数在书写位数过长的不足 以0开头 以0 x开头 C语言程序设计第三章数据类型 运算符与表达式 数值的表示方法 原码 反码和补码原码 最高位为符号位 其余各位为数值本身的绝对值反码 正数 反码与原码相同负数 符号位为1 其余位对原码取反补码 正数 原码 反码 补码相同负数 最高位为1 其余位为原码取反 再对整个数加1 C语言程序设计第三章数据类型 运算符与表达式 负数补码转换成十进制数 最高位不动 其余位取反加1 例原码 10000111取反 11111000加1 11111001 7 C语言程序设计第三章数据类型 运算符与表达式 整型变量整型数据在内存中的存放形式数据在内存中以二进制补码形式存放每一个整型变量在内存中占4个字节 32位 VC6 0编译系统 10的原码反码补码 10的原码反码补码 整数的最左二进制位是符号位 0正 1负 C语言程序设计第三章数据类型 运算符与表达式 整型变量的分类三类整型变量 整数类型和取值范围 C语言程序设计第三章数据类型 运算符与表达式 整数类型和取值范围 TC和VC编译环境 C语言程序设计第三章数据类型 运算符与表达式 整型变量的定义先定义后使用 强制类型定义inta b 指定变量a b为整型 unsignedshortc d 指定变量c d为无符号短整型 longe f 指定变量e f为长整型 例3 2整型变量的定义与使用 includevoidmain inta b c d unsignedu a 12 b 24 u 10 c a u d b u printf a u d b u d n c d 指定abcd为整型变量 指定u为无符号整型变量 定义放在函数开头的声明部分 不同类型混合运算 类型自动转换 结果 a u 22 b u 14 定义与赋值同时进行 inta 12 C语言程序设计第三章数据类型 运算符与表达式 短整型数据的溢出此情况称为 溢出 运行时不报错 编程时要注意 短整型变量最大值32767 加1后是 32768的补码形式 例3 3整型数据的溢出 includevoidmain shorta b a 32767 b a 1 printf d d n a b 改为 intb 结果是什么 C语言程序设计第三章数据类型 运算符与表达式 整型常量的类型整型常量的值在 32768 32767范围内 编译器认为是short类型整型常量的值超过上述范围 而在 2147483648 2147483647范围内 编译器认为是int类型当系统定义int与long占内存长度相同 则两种类型常量均可以赋给int和long型变量在整型常量后面加大写L或小写l 则告诉编译器 把该整型常量作为long类型处理 例 123L 0L在整型常量后面加u 则按无符号整型方式存放 负数转换成补码再按无符号整型方式存放 C语言程序设计第三章数据类型 运算符与表达式 3 4浮点型数据浮点型常量的表示方法浮点数 float 又称为实数 real 两种表示方法 十进制小数形式 必须有小数点如0 123 123 123 0 0 0 123 指数形式 e或E之前后必须有数字 指数必须为整数如123 456e0 12 3456e1 1 23456e2 0 123456e3 0 0123456e4等规范化指数形式只有一位非零整数的指数形式是指数的输出形式 6 28e 2表示6 28 10 2 3 0824e4表示 3 0824 104 C语言程序设计第三章数据类型 运算符与表达式 浮点型变量浮点型数据在内存中的存放形式浮点型数据在内存中占4个字节 32位 在内存中分成3部分 指数为2的幂次 3141591 数符 小数部分 指数 浮点型变量的分类 VC环境 floatx y 指定x y为单精度浮点型变量 doublez 指定z为双精度浮点型变量 longdoublet 指定t为长双精度浮点型变量 C语言程序设计第三章数据类型 运算符与表达式 浮点型数据的舍入误差数据超过有效位数 则产生误差要避免一个很大的数与一个很小的数加减 例3 4浮点型数据的舍入误差 includevoidmain floata b a 123456 789e5 b a 20 printf f n b 舍入误差使1 0 3 3的结果并不等于1 浮点型常量的类型浮点型常量一般按双精度64位处理 数后加F或f按单精度浮点型常量不分float和double C语言程序设计第三章数据类型 运算符与表达式 3 5字符型数据字符常量定义 用单引号括起来的单个字符或转义字符字符常量的值 该字符的ASCII码值定义格式 char变量名 值转义字符 反斜线后面跟一个字符或一个代码值表示 如 a A n t 如 a 97 A 65 n 10 t 9 charch 65与charch A 与char 101 是等效的 C语言程序设计第三章数据类型 运算符与表达式 例3 5转义字符的使用 includevoidmain printf abc tde rf tg n printf h ti b bjk C语言程序设计第三章数据类型 运算符与表达式 字符变量存放字符常量 占用一个字节 存放一个字符定义形式 赋值 charc1 c2 c1 a c2 b 字符数据在内存中的存储形式及其使用方法以二进制存放字符的ASCII码值 0 255整数 与整数的存储形式类似以字符或整数形式输出 例3 6向字符变量赋整数 includevoidmain charc1 c2 c1 97 c2 98 printf c c n c1 c2 printf d d n c1 c2 输出形式取决于printf函数中的格式符 格式符为 c 时输出的变量值为字符格式符为 d 时输出的变量值为整数 C语言程序设计第三章数据类型 运算符与表达式 对字符数据进行算术运算实质是对其ASCII值进行算术运算 例3 7大小写字母的转换 includevoidmain charc1 c2 c1 a c2 b c1 c1 32 c2 c2 32 printf c c c1 c2 字符型与整型间互相赋值 例 互相赋值 includevoidmain intc1 charc2 c1 a c2 98 c1 c1 32 c2 c2 32 printf c c c1 c2 小写字母比大写字母的ASCII码大 32 10 C语言程序设计第三章数据类型 运算符与表达式 字符串常量定义 用双引号 括起来的字符序列 Howdoyoudo CHINA a 123 45 存储 每个字符串尾自动加一个 0 作为字符串结束标志 字符常量与字符串常量不同 例 charch ch A 没有字符串变量 只能用字符数组存放 C语言程序设计第三章数据类型 运算符与表达式 3 6变量赋初值变量的使用 先定义 后使用变量定义位置 一般放在函数开头变量初始化 可以在定义时赋初值 例 inta 1 b 3 c floatdata 3 67 charch A intx 1 y 1 z 1 intx y 1 错 inta b c 3 C语言程序设计第三章数据类型 运算符与表达式 inta 1 b 3 c 3 7各类数值型数据间的混合运算整型 实型 字符型数据间可以混合运算 自动转换什么情况下发生运算转换 不同类型数据混合运算时赋值转换 把一个值赋给与其类型不同的变量时输出转换 输出时转换成指定的输出格式函数调用转换 实参与形参类型不一致时转换运算转换规则 不同类型数据运算时先自动转换成同一类型 C语言程序设计第三章数据类型 运算符与表达式 C语言程序设计第三章数据类型 运算符与表达式 强制转换 见P56强制类型转换运算符部分 一般形式 类型名 表达式 例 int x y int x y double 3 2 int 3 6说明 强制转换得到所需类型的中间变量 原变量类型不变 例3 8 includemain floatx inti x 3 6 i int x printf x f i d x i 结果 x 3 600000 i 3 精度损失问题 强制类型转换运算符 表达式仅一个变量时 括号可以省略 C语言程序设计第三章数据类型 运算符与表达式 3 8算术运算符和算术表达式 学习运算符应注意 运算符功能与运算量关系要求运算量个数要求运算量类型运算符优先级别结合方向结果的类型 C语言程序设计第三章数据类型 运算符与表达式 算术运算符和算术表达式基本算术运算符 结合方向 从左向右优先级 2 3 4 说明 可为单目运算符时 右结合性两整数相除 结果为整数 要求两侧均为整型数据 运算的两个数中有一个数为实数 结果是double型 例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 C语言程序设计第三章数据类型 运算符与表达式 C语言程序设计第三章程序的灵魂 算法 自增 自减运算符 作用 使变量值加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 j 4 3 j 3 c 20 a 4 c 15 a 4 C语言程序设计第三章数据类型 运算符与表达式 几点说明 例 i i 3 printf d i i 3 不能用于常量和表达式 如5 a b 结合方向 自右向左优先级 2 3 4 该运算符常用于循环语句中 使循环变量加减1 有关表达式使用中的问题说明不同系统对运算符和表达式的处理次序不同 尽可能写通用性强的语句不要写有歧义和不知系统如何执行的程序 C语言程序设计第三章数据类型 运算符与表达式 3 9赋值运算符和赋值表达式 简单赋值运算符符号 格式 变量标识符 表达式作用 将一个数据 常量或表达式 赋给一个变量左侧必须是变量 不能是常量或表达式 例a 3 d func c d 2 例3 x 2 y a b 3 类型转换赋值转换规则 使赋值号右边表达式值自动转换成其左边变量的类型 例floatf inti 10 f i 则f 10 0 例inti i 2 56 结果i 2 C语言程序设计第三章数据类型 运算符与表达式 复合赋值运算符种类 含义 exp1op exp2 exp1 exp1opexp2 C语言程序设计第三章数据类型 运算符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国际高中考试及答案
- 2025年山东化学中考试卷及答案
- 2025年精麻处方考试试题及答案
- 慢性病防治知识培训课件
- 慢性咽炎课件
- 金融学基础考试大题及答案
- 情景再现法课件
- 青华中学考试试题及答案
- 护理评估单考试题及答案
- 航空航天概论考试及答案
- 2025-2030年中国消防设备行业市场深度调研及发展前景与投资研究报告
- 2025至2030年中国硫酸钙晶须行业市场竞争现状及投资前景研判报告
- 电厂网格化管理制度
- 电梯安全总监职责、安全员守则
- DeepSeek+AI大模型在工程造价领域的智能化解决方案
- JG/T 24-2018合成树脂乳液砂壁状建筑涂料
- 屏蔽泵知识专题课件
- 2025年安徽省职业技能竞赛(农机修理工)赛项备赛试题库(含答案)
- CNC机加工FMEA的模板
- 2025年部编版道德与法治五年级上册教学计划(含进度表)
- 树懒介绍课件
评论
0/150
提交评论