第二章 基本数据类型 ——数据的表示
本章主要内容 数据类型的概念 常量和变量 整型、实型、字符型数据的表示
数据类型 教学要求: 1.掌握C语言数据类型分类。 2.掌握整型数据、实型数据、字符数据使用规则。 3.掌握C语言常量、变量的使用。
2.1 数据(Data)和数据类型(Data Type) 是对认识的事实性记载 是用来表示客观事物的符号 是指能够由计算机处理的数字、字母、符号、声音、图象、影视信息等。 是程序的必要组成部分和程序处理的对象。
2、数据类型(Data Type) 计算机只能存放二进制数据。不同类型的事物如何区分和描述?由此产生数据类型。 不同类型的数据占据不同长度的存储单元。 不同类型的数据对应不同的值域范围。 不同类型的数据对应不同的操作(运算)及规则。 数据类型越丰富,求解能力越强大。
3、数据基本形式 在实际数据处理过程中,有些数据经常变化(大批量),而有些数据不变化(个别)。 变化的量称变量,不变化的量称常量。常量和变量是计算机语言中数据的两种基本形式。 常量和变量的运算规则是有区别的。
4、C语言的数据类型 1.基本类型 整型 、 实型(又称浮点型)、 字符型 、 枚举型、 空类型 2. 构造类型 数组类型 、结构类型 、共用类型 3. 指针类型 C语言中的数据,有常量和变量之分,它们分别属于上述这些类型。
常量和变量是计算机语言中数据的两种基本形式。 2.2 常量与变量 变化的量称变量; 不变化的量称常量; 常量和变量是计算机语言中数据的两种基本形式。
2.2.1 常量的分类 (1)整型常量,如5, 10, 20 (2)实型常量,如3.5 (3)字符常量, 如‘A’, ‘a’ 2.2.1 常量的分类 (1)整型常量,如5, 10, 20 (2)实型常量,如3.5 (3)字符常量, 如‘A’, ‘a’ (4)字符串常量,如“china” (5)符号常量,可由用户定义 常量的类型,可通过书写形式来判别。
1、整型常量的表示 三种表现形式: 十进制形式:与数学上的整数表示相同。 例如: 12, -100, 0 八进制形式:在数码前加数字0 。 十进制形式:与数学上的整数表示相同。 例如: 12, -100, 0 八进制形式:在数码前加数字0 。 例如: 012=1*81+2*80=10(十进制) 十六进制形式:在数码前加0X(数字0和字母X,大小写均可)。 例如: 0x12=1*161+2*160=18(十进制)
.长整型常量的表示: 数据后加一个字母1 或 L,则认为是long int型常量. 例如:1231 , 432L, 0L等等。
2、实型常量的表示 十进制形式:由数字和小数点组成; 例如: 3.4 4. .3 例如: 3.4 4. .3 指数形式:由“十进制小数” + “ e(或E)” + “十进制数整数” 三部分组成。 例如: 12.5e-6 表示12.5×10-6 十进制小数 e(或E) 十进制数整数
3、字符型常量的表示 二种表现形式: 只能是英文的单引号 用单引号括起来的一个字符; 如:'A'、 '1'、'? '等。 用单引号括起来的由反斜杠(\)引导的转义字符。 在统计字符个数时,只能记为一个字符 如: '\n' '\101' '\x41'
\t 、\v \b 、\r \f \\、\'、\" \ddd \xhhh 转义字符表 字符形式 功能 \n 换行 \t 、\v 横向跳格、 竖向跳格 退格、 回车 \b 、\r \f 换页 \\、\'、\" 反斜杠、单引号、双引号 8进制数表示的ASCII码对应的字符 \ddd \xhhh 16进制数表示的ASCII码对应的字符
转义字符的应用 例2-1 用转义字符输出可打印字符和不可打印字符。 main() { printf(“\x4F\x4B\x21\n”); printf(“\x15 \xAB\n”); } 程序运行结果: OK! § ½
一个字符的多种表示方法: 要避免的错误: 正确表示方法: 65D(十进制)=41H(十六进制)=101Q(八进制) ∴字符A可以表示为'A'、'\x41'、'\101‘、65、0x41、0101。 要避免的错误: 正确表示方法: 表示单引号:‘\'' 表示双引号:‘\"' 表示斜线: ‘\\' 表示单引号:''' 表示双引号:'"' 表示斜线: '\'
4、字符串常量 1.字符串常量的概念和字符串长度 字符串常量是用一对双引号括起来的若干字符序列。 字符串中字符的个数称为字符串长度。长度为0的字符串(即一个字符都没有的字符串)称为空串,表示为“ ” (一对紧连的双引号)。 例如,“How do you do.”、“Good morning.”等,都是字符串常量,其长度分别为14和13(空格也是一个字符)。
2.字符串的存储 C语言规定:在存储字符串常量时,由系统在字符串的末尾自动加一个‘\0’作为字符串的结束标志。 如果有一个字符串为“CHINA”,则它在内存中的实际存储如下所示: 最后一个字符'\0'是系统自动加上的,它占用6字节而非5字节内存空间。 C H I N A \0
定界符不同:字符常量使用单引号,而字符串常量使用双引号; 长度不同:字符常量的长度固定为1,而字符串常量的长度,可以是0,也可以是某个整数; 3.字符常量与字符串常量的比较: 定界符不同:字符常量使用单引号,而字符串常量使用双引号; 长度不同:字符常量的长度固定为1,而字符串常量的长度,可以是0,也可以是某个整数; 存储要求不同:字符常量存储的是字符的ASCII码值,而字符串常量,除了要存储有效的字符外,还要存储一个结束标志’\0’。
5、符号常量 概念:是用标识符来表示一个数据。 特点:在程序中不能给它赋值。 定义形式: #define 标识符 常量数据 例如: #define PI 3.14159 在程序预处理时,凡是出现标识符PI的地方都将用数据3.14159来替换。 如:2*2.3*PI 就等价于 2*2.3*3.14159。
2.2.2 变量 变量应具有的要素 变量命名规则 变量使用规则 变量初始化 变量引用 类型修饰符
1 变量应具有的要素 1.变量的概念 在程序运行过程中,其值可以被改变的量称为变量。 2.变量的两个要素 1 变量应具有的要素 1.变量的概念 在程序运行过程中,其值可以被改变的量称为变量。 2.变量的两个要素 (1)变量名。每个变量都必须有一个名字──变量名,变量命名遵循标识符命名规则。 (2)变量值。在程序运行过程中,变量值存储在内存中。在程序中,通过变量名来引用变量的值。
2 变量(标识符)命名规则 命名规则: (1)变量名只能由字母、数字或下划线组成; 合法变量名: 2 变量(标识符)命名规则 命名规则: (1)变量名只能由字母、数字或下划线组成; (2)变量名的第一个字符必须是字母或下划线; (3)变量名长度不超过32个字符(TC); (4)不要用保留字定义变量名(有32个保留字)。 合法变量名: a、 b1、 _area、employee_name 不合法变量名: 1-name、 max one 、float 、*account
见名知意 培养好习惯 所谓“见名知意”是指,通过变量名就知道变量值的含义。通常应选择能表示数据含义的英文单词(或缩写)作变量名,或汉语拼音字头作变量名。 例如,name/xm(姓名)、sex/xb(性别)、age/nl(年龄)、salary/gz(工资)。
3 变量的使用 基本概念: 变量是指在程序运行中, 其值可以被改变的量。 3 变量的使用 基本概念: 变量是指在程序运行中, 其值可以被改变的量。 变量代表计算机内存中的某一存储空间,该存储空间中存放的数据就是变量的值。 在同一程序块中,每个变量都有唯一的名字,不能被重复定义。 使用变量时必须“先定义,后使用”。
int a,b,c ; float x,y; char c1,c2; 或 int c1,c2; 定义形式: 类型标识符 变量名1 [,变量名2,变量名3,...]; 自己设定,满足标识符的规定。 如:int, float,char ;不可省 例如: int a,b,c ; float x,y; char c1,c2; 或 int c1,c2;
内存地址 2000 x 2001 2002 2003 y 2004 2005 int x; long y; 内存
4 基本数据类型 C语言中有4种基本数据类型: 数据类型 类型说明符 占用字节 字符型 char 1个 整型 int 2个 4 基本数据类型 C语言中有4种基本数据类型: 数据类型 类型说明符 占用字节 字符型 char 1个 整型 int 2个 浮点型 float 4个 双精度型 double 8个
5 类型修饰符 在基本数据类型前加类型修饰符,可以改变数据表示的范围。常用的有: unsigned —— 无符号 long —— 长型 5 类型修饰符 在基本数据类型前加类型修饰符,可以改变数据表示的范围。常用的有: unsigned —— 无符号 long —— 长型 short —— 短型 例如: unsigned char 表示范围变为0~255 unsigned int 表示范围变为0~65535
本章主要学习基本数据类型,包括: 实型 数值型 基本数据类型 整型 空类型 void 字符型 char 单精度实型 float 双精度实型 double 无符号短整型 unsigned short 有符号短整型 short 无符号整型 unsigned int 有符号整型 int 无符号长整型 unsigned long 有符号长整型 long 基本数据类型 实型 数值型 整型
选择适当的数据类型 long int x; %ld 例2-2,看看下面程序的输出是什么? main() { int x; printf("%d",x); } long int x; 运行结果:24320 %ld
6 变量初始化 变量定义 分配存储空间 分配存储空间的同时存入数据 变量初始化 a b ? int a,b; 值不确定 a b 1 2 6 变量初始化 在说明变量的同时给变量一个初始值。 变量定义 分配存储空间 分配存储空间的同时存入数据 变量初始化 a b ? int a,b; 值不确定 a b 1 2 int a=1,b=2;