当前位置:
文档之家› 第3章 C语言数据类型、运算符和表达式
第3章 C语言数据类型、运算符和表达式
第3章 C语言数据类型、 运算符和表达式
本章要点:
数据的描述规则 数据的操作规则
教学要求:
1.掌握C语言数据类型分类。 2.掌握整型数据、实型数据、字符数据使用规则。 3.掌握C语言常量、变量的使用。
内容提要:
3.1 基本字符、标识符和关键字
3.2 基本数据类型
3.3 常量与变量 3.4 整型数据 3.5 实型数据 3.6 字符型数据
变量的定义和使用
注意: (1) 允许在一个类型说明符后,定义多个相同类 型的变量。各变量名之间用逗号隔开;类型说明
符与变量名之间至少用一个空格间隔。
(2) 最后一个变量名之后必须以“;”号结尾。 (3) 变量定义必须放在变量使用之前。
3.4 整型数据(续)
【例】整型变量的定义与使用。 #include <stdio.h> void main( ) { int a,b,c; printf(”Please input two numbers:”); scanf(”%d,%d”,&a,&b); if(a>b) c=a; else c=b; printf(“The max number is:%d\n”,c); }
3.4 整型数据(续)
(3)十六进制整数。以0x(0X)开头的数是16进制数。
如:0x123,代表16进制数123,等于十进制数 291。 -0x12等于十进制数-10。
二、整型变量 (1)整型数据在内存中的存放形式 数据在内存中是以二进制形式存放的。 如: int i; /* 定义为整型变量 */ i=10; /* 给i赋以整数10 */
实型变量的分类 实型变量分为单精度(float型)、双精度 (double型)和长双精度型(long double)三类形式。
数据类型 单精度 类型符 占内存 占内存 (字节) (位) 4 32 数值范围 10-37~1038 有效 数字 7
float
双精度 长双精度
double long double
内容提要:
3.7 变量赋初值
3.8 各类数值型数据间的混合运算
3.9 运算符和算术表达式
3.1 基本字符、标识符和关键字
一、符号集(字符集) C语言的基本符号共有以下五种: (1) 大写字母 A~Z (2) 小写字母 a~z (3) 阿拉伯数字 0~9 (4) 下划线 _ (5) 标点符号和运算符
变量命名的规定:C语言规定标识符只能由字母、 数字和下划线三种字符组成,且第一个字符必须为 字母或下划线。 例: sum,_total, month, Student_name, lotus_1_2_3,BASIC, li_ling
M.D.John, ¥123,3D64,a>b
3.3 常量与变量(续)
二、标识符
标识符号常量、变量、函数、类型名、文件等的 有效字符序列。 标识符构成规则: (1) 标识符只能由字母、数字和下划线三种字符组 成,且第一个字符必须为字母或下划线。
例:x y3 _imax ECSE 7x int #No bad one
X A_to_B (合法) reg-input (不合法)
3.5.1实型常量的表示方法 小数 指数 0.123 3e-3
两种 表示形式
注意:字母e(或E)之前必须有数字,且e后面的 指数必须为整数
1e3、1.8e-3、-123e-6、-.1e-3 e3、2.1e3.5、.e3、e
实型二种表现形式: 十进制形式:由数字和小数点组成; 例如: 3.4 4. .3
指数形式:由‚十进制小数‛ + “ e(或E)” + “十进制数整数‛ 三部分组成。 例如: 12.5e-6 表示12.5×10-6
十进制小数
e(或E)
十进制整数
注意: 小数点不能单独出现;
如:0.、 .0 应为: . e或E的两边必须有数,且其后面必须为整数; 如: 6E0.2 e5 6E
3.5.2 实型变量
运行结果: 2 area=12.566360
说明: 程序中用#define命令行定义PI代表常量 符号常量: 用一个标识符代表一个常量。符号常量的 3.14,此后凡在本文件中出现的PI都代表3.14159, 值在其作用域内不能改变,也不能再被赋值。 可以和常量一样进行运算。
3.3 常量与变量
3.3.2
变量
概念:在程序运行期间,其值是可以改变的量。 用标识符(变量名)来表示。 变量代表内存中具有特定属性的一个存储单元,它用来存放 数据,这就是变量的值。 从变量中取值,实际上是通过变量名找到相应的内存地址, 从该存储单元中读取数据。 变量的定义方法: 类型符 标识符
3.3 常量与变量(续)
8 16
64 128
10-307~10308 10-4931~104932
16 19
说明:
(1)
(2)
(3)
C编译系统通常把所有实型常数都被默认为 double型。 绝对值小于1的浮点数,其小数点前面的零 可以省略。 Turbo C默认格式输出浮点数,最多只保留 小数点后6位。
3.5.3 实型数据在内存中的存放形式
无符号短整型 unsigned short 2字节 无符号长整型 unsigned long
3.4 整型数据 (续)
例如:整数13在内存中实际存放的情况:
3.4 整型数据(续)
(3)整型变量的定义和使用 C规定在程序中所有用到的变量都必须在程序 中定义,即‚强制类型定义‛。 定义的一般形式: 类型说明符 变量名1,变量名2,· · · ; ··· 例如: int a,b; /*指定变量a、b为整型*/ unsigned short c,d;/*指定变量c、d为无符号短整型*/ long e,f; /*指定变量e、f为长整型*/
(2) 在C语言中,大小写字母不等效。
a和A,I和i,Sum和sum,分别是两个不同的标识符。
(3) 用户自定义的标识符不能与保留字(关键字)同名。
三、关键字(保留字)
概念:就是具有特定含义的标识符,用户不能用 来作自定义标识符。 C语言中的关键字较少,由ANSI标准推荐的关键 字有32个。 (1)与数据类型有关的(14个): char int float double signed unsigned short long void struct union typedef enum sizeof (2)与存储类别有关的:
注意:括号表示其中的内容是可选的.
3.4 整型数据(续)
整数类型的有关数据:
类型
基本型 短整型 长整型 无符号整型
类型说明符
int short long unsigned
长度
2字节 2字节 4字节 2字节 4字节
数的范围
-32768~32767 -215~215-1 -231~231-1 0~65535 0~65535 0~(232-1)
auto extern register static
三、关键字(续)
(3) 与程序控制结构有关的(12): do while for if else switch case default goto continue break return
注意: (1) 所有的关键字都有固定的意义,不能用作其它 (2) 所有关键字都必须小写。 如else 与 ELSE表示不同的含义
3.4 整型数据(续)
(3) 如果所用的C版本(如Turbo C)分配给short int与int型数据在内存中占据的长度相同,则它 的表数范围与int型相同。因此一个int型的常量 同时也是一个short int型常量,可以赋给int型 或short int型变量。
3.4 整型数据(续)
(4) 一个整常量后面加一个字母u或U,认为是 unsigned int型。
3.4 整型数据(续)
(2)整型变量的分类
共六种
有符号基本整型 有符号短整型 有符号长整型 无符号基本整型 无符号短整型 无符号长整型
(signed)int (signed)short (int ) (signed) long (int) unsigned int unsigned short (int) unsigned long (int)
注意:
编译系统将大写字母和小写字母认为是两个不同 的字符。 建议变量名的长度最好不要超过8个字符。 见名知意。 先定义,后使用。 习惯上,符号常量用名用大写,变量名用小写, 以示区别。
3.4 整型数据
一、整型常量的表示方法 整型常量即整常数。在C语言中,整常数可用以 下三种形式表示: (1) 十进制整数。 如:123, -456, 4。 (2) 八进制整数。最高位必须用0作引导符。 如:0123表示八进制数123,等于十进制数83, -011表示八进制数-11,即十进制数-9。
如12345u,在内存中按unsigned int规定的方式存放 (存储单元中最高位不作为符号位,而用来存储数据)。如 果写成-12345u,则先将-12345转换成其补码53191,然后 按无符号数存储。
(5) 在一个整常量后面加一个字母l或L,则认为是 long int型常量。
3.5 浮点型数据 (实型数据)
3.4 整型数据 (续)
三、 整型常量的类型 (1) 一个整数,如果其值在-32768~+32767范围内, 认为它是int型,它可以赋值给int型和long int型 变量。 (2) 一个整数,如果其值超过了上述范围,而在2147483637~+2147483647范围内,则认为它是为长 整型。可以将它赋值给一个long int型变量。