C语言资料第三章新.ppt

上传人:自*** 文档编号:126168633 上传时间:2020-03-22 格式:PPT 页数:83 大小:858.52KB
返回 下载 相关 举报
C语言资料第三章新.ppt_第1页
第1页 / 共83页
C语言资料第三章新.ppt_第2页
第2页 / 共83页
C语言资料第三章新.ppt_第3页
第3页 / 共83页
C语言资料第三章新.ppt_第4页
第4页 / 共83页
C语言资料第三章新.ppt_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《C语言资料第三章新.ppt》由会员分享,可在线阅读,更多相关《C语言资料第三章新.ppt(83页珍藏版)》请在金锄头文库上搜索。

1、 第三章 数据类型 运算符和表达式 l 主要内容 uC 语言的数据类型 u常量与变量 u整型数据 u浮点型数据 u字符型数据 u变量赋初值 u各类数值型数据间的混合运 算 u算术运算符和算术表达式 u赋值运算符和赋值表达式 u逗号运算符和逗号表达式 1 3 1 C语言的数据类型 l 计算 3 2 数值型数据 l 在屏幕上显示 我是河科人 字符串常量 l 到 203 房间找某人 指针型数据 l 学号为101 103的全体学生 数组型数据 算法处理的对象是数据 数据是数据的组织形式即数据结构 不同的数据之间往往存在某些联系 不同的计算机语言使用的 数据结构是不相同的 所以 处理同一类问题 如果数据

2、结构 不同 算法也会不同 因此 在程序设计时 应综合考虑算法 和数据结构 选择最佳的数据结构和算法 回顾第二章 问题的提出 2 3 1 C的数据类型 数据类型 基本类型 构造类型 指针类型 空类型 数值型 字符型 枚举类型 整型数据 实型 浮点 数据 单精度型 双精度型 数组类型 结构体类型 共用体类型 所有的数据 在进行处理时都需要先存放进计算机的内存中 所 以了解不同的数据在计算机中存储的形式是很重要的 3 3 2 常量与变量 l 在程序设计中 我们不仅使用到常量 如 123 90 0 125等 而且我们更多地还要使用变量 因为它们 的值在程序的运行中是可以改变的 l 本节内容需要了解常量

3、及变量的概念 变量的命名规 则 4 l 语言字符集 1 英文字母 大小写各26个 共计52个 2 阿拉伯数 0 9共10个数字 3 下划线 4 特殊符号 通常指由1 2个符号组成的运算符 算术运算符 关系运算符 条件运算符 和 即赋值运算符 其他分隔符 一 C语言字符集 标识符和关键字 5 l C 语言的标识符 l 标识符 用来标识变量名 符号常量名 函数名 数组名 类型名 文件名的有效字符序列 标识符就是一个名字 l 合法标识符 由字母 数字 下划线组成且第一个字符必须为字母或 下划线 不允许超过32个字符 但为了程序的可移植性 建议不要超 过8个字符 例 student name与stud

4、ent code是一样的标识符 超过8个的舍去 l 用户标识符 去掉32个关键字后的合法标识符 例如 int float if等 是C语言的关键字 不能作为用户标识符 注意 C语言标识符中大 小字母不通用 例 sum和SUM是两个 不同的标识符 C语言规定 保留关键字不能作为用户标识符 C语言的保留关键字共有32个见附录B 6 l C 语言的标识符 不能作标识符 不能作标识符 不能以数字开头 关键字不能作用户标识符 关键字不能作用户标识符 不能作标识符 a1 abc c a b a b abc123 3a int Int Len 1 else 合法标识符 22A lea 1 avg3 day

5、ABCde43xyw8 不合法标识符 M J YORK 238 xy a b 8Tea 判断下列用户标识符的合法性 7 就是具有特定含义的标识符 用户不能用来作为自定义标 识符 由ANSI标准推荐的关键字有32个 常用的有 与数据类型有关的 char int float double signed unsigned short long void struct union type def enum sizeof 与存储类别有关的 auto extern register static 与程序控制结构有关的 do while for if else switch case default go

6、 to continue break return l 关键字 8 二 常量与符号常量 常量 在程序运行过程中 其值不变的量称为常量 如 85 67 23 7 A 9 A 等 一般从字面上即可判别 这种常量叫直接常量 字面常量 常量的分类 1 整型常量 2 实型常量 3 字符常量 4 字 符串常量 5 符号常量 常量的类型 可通过书写形式来判别 符号常量 用一个标识符来表示一个常量就叫作符号常量 符号常量的常用预处理命令define来实现 其定义形式为 define 标识符 常量 例如 define PI 3 1415 含义为 定义PI为符号常量 其值为3 1415 说明 一般习惯上用大写字母

7、表示符号常量 用小写字母表示 变量 以示区别 但仅仅是习惯而不是规定 9 程序L3 1 C 符号常量的使用 define PRICE 30 include main int num total num 10 total num PRICE printf total d n total 好处 1 含义清楚 定义符号常量时 要做到 见名知意 2 在需要改变一个常量时 能做到 一改全改 说明 1 程序中的PRICE都代表30 2 符号常量的值在其作用域内不能改变 也不能再赋值 3 如果再用PRICE 40给符号常量赋值是错误的 运行结果 total 300 注意 PRICE与30之间不允许有 号 1

8、0 符号常量使用时的注意事项 注意 l 1 一般习惯上用大写字母表示 以便与变量区分开 如 果用小写字母也可以 只是为了与变量区分 是习惯 而不是规定 l 2 定义符号常量时 不能以 结束 l 3 一个 define占一行 且要从第一列开始书写 l 4 一个源程序文件中可含有若干个define命令 不同 的define命令中指定的 标识符 不能相同 11 三 变量 l 变量 在程序运行过程中 其值可以改变的量 称为变量 l 变量的定义 类型标识符 标识符1 标识符2 标识符n 注意事项 P39 在选择变量名和其他标识符时 应做到 见名知意 不允许是关键字 要求对变量须进行强制性定义 即必须 先

9、定义 后使用 每个变量必须被指定为一种确定类型 以便编译时能为其分 配存储单元 int a b c a b c 为整型变量 float x y z x y z 为单精度型变量 12 三 变量 l 变量的组成要素 变量名 变量类 型 变量值 例如 int a 15 15 内存中的数据 数据15 内存 通过变量 可 以为内存中的 位置提供一个 有意义的名称 在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址 从变量中取值 实际上是通过变量名找到相应的内存地址 从该存储单 元中读取数据 a 变量值 内存单元 变量名 15 13 3 3 数值型数据的表示 一 整型常量 l表示形式 十进制整数

10、 与数学上的整数表示相同 如 123 0 456 八进制整数 以数字0开头 如 0123 1 82 2 81 3 80 83 10 011即 11 8 9 10 十六进制整数 以数字0和字母x开头 如 0 x123 0 xa2 如 0 x123 1 162 2 161 3 160 291 10 0 xa2即 a2 16 162 10 八进制的数码范围为0 7 018 十六进制的数码除了数字0 9外 还使用英文字母 a f 或A F 表示10 15 如 0 x1e 在VC 6 0中数值型数据有两种 整型和实型 14 l整数的存储空间为4个字节 即32个二进制位 l取值范围为 231 231 1

11、即 2147483648 2147483647 3 3 数值型数据的表示 在VC 6 0中数值型数据有两种 整型和实型 一 整型常量 整数 有符号的整数 在内存中存放的是它的补码 无符号数没有符号位 存放的就是原码 整数占用的字节 数与机型有关 32位机上占用4个字节 15 l 整型数据在内存中的是按它的补码来存放的 l 如果要知道一个有符号的整数在内存中的存储形式 一般方法是 原码 反码 补码 l 如果已知内存中的一个二进制编码 还要用相反的方 法将其转换成有符号数 请关注 16 补充 带符号数在计算机中的表示 l 整数在计算机中是按补码存储的 l 原码 用最高位作符号位 0表示正数 1表示

12、负数 其 余各位表示数值的大小 l 反码 正数的反码与原码相同 负数的反码是将原码除 最高位之外 其它各位按位取反 l 补码 正数的补码与原码相同 负数的补码是将反码的 最低位加1 数值数据有带符号数和无符号数之分 注意 负数的求补码的另一种方法 将该数的绝对值的二进制形 式 按位取反再加1 17 34和 34的8位编码 l 例如 整数 34 的8位 1字节 编码 l 原码 00100010 l 反码 00100010 l 补码 00100010 l 例如 整数 34 的8位 1字节 编码 l 原码 10100010 l 反码 11011101 l 补码 11011110 内存中存储形式 内存

13、中存储形式 18 34和 34的16位编码 l 例如 整数 34 的16位 2字节 编码 l 原码 00000000 00100010 l 反码 00000000 00100010 l 补码 00000000 00100010 l 例如 整数 34 的16位 2字节 编码 l 原码 10000000 00100010 l 反码 11111111 11011101 l 补码 11111111 11011110 内存中存储形式 内存中存储形式 19 二 整型变量 l 在 C 语言中 可以使用整型变量存放一个整型数 据 使这个变量的值在程序运行时能够发生变化 每定义一个变量 VC 系统就会给该变量分

14、 配存储单元 用户可随时改变该存储单元的内容 但是 若存储单元太大 会浪费存储空间 若 存储单元太小 又影响存储的范围和精度 因而 VC 规定了不同类型的整型变量 3 3 数值型数据的表示 20 1 整型数据在内存中的存放形式 编译系统为整型变量在内存中分配了4个字节的存 储单元 数值以补码形式存储 2 整型变量的分类 整型变量的基本类型符为 int 根据数据所占的二进制位数分为 int long short 同样存储长度的数据又分为 unsigned signed 隐含 故可组合出六种类型 3 整型变量值的范围 由机器中数据的存储长度决定 见下表 21 l整型类型与数值范围 如VC 6 0中

15、 数据长度 short 2字节 int 4字节 long 4字节 关键字 所占位数 取值范围 short 16 2B 32768 32767即 215 215 1 unsigned short 16 2B 0 65535 即0 216 1 int 32 4B 231 231 1 unsigned int 32 4B 0 232 1 long 32 4B 2147483648 2147483647 unsigned long 32 4B 0 4294967295即0 232 1 如何判断字节数呢 printf d n sizeof unsigned long int 22 如果既不指定unsig

16、ned也不指定signed 则隐含为signed 因此存储 单元中最高位为符号位 0为正 1为负 如果指定unsigned 则存储单元中全部二进制位用作存放数值本身 无符号型变量只能存放不带符号的整数 而不能存放负数 一个无符号整型变量存放的正数范围比一般有符号整型变量中正数的 范围扩大一倍 例如 int a 变量a的数值范围为 231 231 1 a的最大值2147483647 unsigned int b 变量b的数值范围为0 232 1 b的最大值4294967295 思考题 如果变量a 32767 再加1会出现什么情况 见下页 23 整型数据的溢出问题 例3 3 整型数据的计算 include main int a b a 32767 b a 1 printf d d n a b 运行结果 32767 32768 思考 将int b 改为short b 程 序运行后b的值是什么 24 整型数据的溢出 例3 3 整型数据的溢出 include main int a short b a 32767 b a 1 printf d d n a b 运行结果 32767 32768 1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号