当前位置:
文档之家› C语言程序设计教程第2章_北京邮电大学出版社
C语言程序设计教程第2章_北京邮电大学出版社
第2章 C语言的基本数据类型与表达式
10
例2-1: main( ) { int x,y,z,w; /*定义x,y,z,w为整型变量*/ unsigned int k; /*定义k为无符号整型变量*/ x=10;y=-20;k=30; z=x+k;w=y+k; printf(“x+k=%d,y+k=%d\n”,z,w); } 程序运行结果为: x+k=40,y+k=10
C语言程序设计教程
15
4.数据在内存中的形式——以二进制的形式存放,以补码表示。 数据在内存中是以二进制的形式存放的, 如定义 int i=12; 根据在C编译系统一个整型变量所占的字节数为 2,变量i在 内存中的实际存放情况如图2-1所示。
0 0
0 0 0
0 0 0 0 0 0
0 1 1 0 0
13
2.2 C语言的基本数据类型
一、整型数据 1、整型常量表示方法: (1) 十进制形式:与数学上的整数表示相同; 例如: 12, -100, 0 (2) 八进制形式:在数码前加数字0; 例如: 012=1*81+2*80=10(十进制) (3) 十六进制形式:在数码前加0X(数字0和字母X)。 例如: 0x12=1*161+2*160=18(十进制)
精度(位) 7 15
19
3.实型数据的舍入误差
void main() { float a=1234567.896; float b=1234567.848; printf(―a=%f\nb=%f\n‖, a,b); } void main() { double a=1234567.896; double b=1234567.848; printf(―a=%f\nb=%f\n‖, a,b); }
1 1 1 1 1 加1 得-3的补码 1 1 1 1 1
由此可知,在整数的16位中,最左边的一位为符号位, 为0,表示数值为正;为1,表示数值为负
2016/10/4
C语言程序设计教程
17
5.整型数据的溢出:
不同的整型数据有不同的取值范围,在程序运行过程 中,如果出现数值超出整型数据的允许值范围,就会 出现“溢出”。 例如:一个int型的变量的最大值为(215-1)=32767,如果再 加1,则产生溢出,其结果为: -215 =-32768
结果: a=1234567.875000 b=1234567.875000
结果: a=1234567.896000 b=1234567.848000
C语言程序设计教程
2016/10/4
20
为什么会出现这种情况?是由于实型数据是用 有限的存储单元进行存储的,因而能提供的有效 数字有限,在有效数字以外的数字将被舍弃。对 于float型变量,只能保证前7位数字是准确的, 后面的数字是无意义的,而采用double型变量后, 其精度大幅度提高,能保证前15位有效数字是准 确的。另外,同样因为有效数字的位数问题,在 程序中应避免用一个很大的数加上或减去一个很 小的数,否则会丢失小的数。
字符形式 \n \t \b \r \\ \‟ \ddd \xhh 2016/10/4 功能 换行 横向跳格 退格 回车 反斜杠字符 单引号字符 8进制数表示的ASCII码对应的字符 16进制数表示的ASCII码对应的字符 C语言程序设计教程
第2章 C语言的基本数据类型与表达式
22
例如:字符A的ASCII码为: 65D(十进制)=41H(十六进制)=101Q(八进制) ∴字符A可以表示为‘A‟、’\x41‟、’\101‟。 2、分类: char 和 unsigned char; 3、值域: 每个字符型数据在内存中占一个字节;包括ASCII字符 表中的所有字符(可显示字符和非显示字符)。 4、变量值的存储 字符数据在内存中的存储形式 : 以二进制的 ASCII 码形 式存储。 字符数据在内存中存储的是字符的ASCII码── 一个无 符号整数,其形式与整数的存储形式一样,所以C语言允 许字符型数据与整型数据之间通用。
* 八进制的数码范围为0~7; 018 * 十六进制的数码除了数字0~9外, 还使用英文字母a~ f (或A~ F)表示10~15。 如:0x1e √
2016/10/4
C语言程序设计教程
第2章 C语言的基本数据类型与表达式
14
2、整型变量分类: 根据数据所占的二进制位数分为:int、short、long; 同样存储长度的数据又分unsigned、signed; 故可组合出六种类型。 3、整型变量值域: 由机器中数据的存储长度决定。 如Turbo C中,有 short(2字节)≤int(2字节) ≤long(4字节)
注意
小数点不能单独出现; 0.√ .0 √ . e或E的两边必须有数,且其后面必须为整数; 如: 6E0.2 e5 2、实型变量分类:
关键字 float double 字节数 4 8
2016/10/4
取值范围 3.4×10-38 ~ 3.4×1038 1.7×10-308 ~ 1.7×10308 C语言程序设计教程
2016/10/4
C语言程序设计教程
第2章 C语言的基本数据类型与表达式
21
四、字符类型 1、字符常量: (1) 用单引号括起来的一个字符;如:‘A‟、 ‘1„、’?‟ 等。 (2) 用单引号括起来的由反斜杠(\)引导的转义字符。 转义是指在源程序中碰到这种字符组合时,反斜杠的意 义已经发生转变,变成控制代码和具有某些特殊用途的单 个字符。例如,‘\n‟已不再代表英文小写字母n,而转义 成了“换行符”。
2.构造类型
分为数组类型、结构类型和共用类型三种。 3.指针类型。在第9章中介绍。
4.空类型
C语言中的数据,有常量和变量之分,它们分别属于上述 这些类型。
2016/10/4
C语言程序设计教程
3
字符型(char) 整型(short,int,long,unsigned) 单精度型(float) 基本类型 实型 双精度型(double) 枚举类型(enum) 数据类型
习惯上,变量名和函数名中的英文字母用小写,以增加可 读性。
思考题:在C语言中,变量名total与变量名TOTAL、ToTaL、 tOtAl等是同一个变量吗? 标识符命名的良好习惯──见名知意: 所谓“见名知意”是指,通过变量名就知道变量值的含义。 通常应选择能表示数据含义的英文单词(或缩写)作变量名, 或汉语拼音字头作变量名。 例如,name/xm(姓名)、sex/xb(性别)、age/nl(年龄)、 salary/gz(工资)。
2016/10/4
C语言程序设计教程
12
变量的特点:
变量是指以标识符为名字,其值可以改变的量。
变量代表计算机内存中的某一存储空间,该存储空 间中存放的数据就是变量的值。 在同一程序块中,变量不能被重复定义。 使用变量时必须“先定义,后使用”
2016/10/4
C语言程序设计教程
第2章 C语言的基本数据类型与表达式
C语言程序设计教程
第 2 章 C语言的基本数据类型与表达式
2.1 常量和变量
2.2 C语言的基本数据类型
2.3 数据类型转换 2.4 运算符与表达式
第2章 C语言的基本数据类型与表达式
2
C语言的数据类型
C语言提供的数据结构,是以数据类型形式出现的。具体分 类如下: 1.基本类型 分为整型、实型(又称浮点型)、字符型和枚举型四种。
图2-1 整型变量i在内存中的存放示意图 实际上,数值是以补码表示的。 • 正数的补码: 与原码相同 • 负数的补码: 负数→取绝对值→二进制→按位取反→再加 1→补码
2016/10/4
C语言程序设计教程
16
例如:求-3在内存中的存放形式
3的原码 0 0 按位取反 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 1 0 1
32767
0 1 1 1 1 1 1 1 1 1 1 1 1 1
ห้องสมุดไป่ตู้1 1
-32768
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2016/10/4
C语言程序设计教程
第2章 C语言的基本数据类型与表达式
18
二、实型数据 1、实型常量表示方法: (1) 十进制小数形式:由数字和小数点组成; 例如: 3.4, 4., .3。 (2) 指数形式:“十进制小数”+“ e(或E)”+“十进制数整 数”。 例如: 12.5e-6 表示12.5×10-6 。
2016/10/4
C语言程序设计教程
7
(1)变量名。每个变量都必须有一个名字──变量名,变量命名 遵循标识符命名规则。 (2)变量值。在程序运行过程中,变量值存储在内存中。在程 序中,通过变量名来引用变量的值。 3.标识符命名规则 (1)有效字符:只能由字母、数字和下划线组成,且以字母或 下划线开头。 (2)有效长度:随系统而异,但至少前8个字符有效。如果超长, 则超长部分被舍弃。
2016/10/4
C语言程序设计教程
9
4.变量的定义与初始化 在C语言中要求对所有用到的变量,必须先定义、后使 用;且称在定义变量的同时进行赋初值的操作为变量初始化。
(1)定义形式:类型标识符: 变量名1 [,变量名2,变量名3...];
如:int, float,char
自己设定,满足 标识符的规定。
例如,由于student_name和student_number的前8个字符相同, 有的系统认为这两个变量,是一回事而不加区别。
在TC V2.0中,变量名(标识符)的有效长度为1~32个字符, 缺省值为32。
2016/10/4
C语言程序设计教程