第二章数据类型、运算符与表达式 本章的主要内容包括: ◆C语言中的数据表示 ◆C语言数据类型 ◆C语言的表达式计算 ◆C语言的数学函数 回首页
本章的主要内容包括: C语言中的数据表示 C语言数据类型 C语言的表达式计算 C语言的数学函数。 第二章数据类型、运算符与表达式 回首页
2.1标识符和关键字 本节的主要概念包括 ●◆标识符:用来标识程序中的变量、符号常量、函数、数组、类型、文件 等对象的名字 标识符只能由字母、数字和下划线组成,且第一个字符必需为字母或 下划线。C语言中大小写字母是两个不同的字符 ◆关键字:标识符的一个特殊的集合。其中的标识符在C语言中有预先定 义好的特殊意义。不能用于其他任何目的。 ◆C语言的关键字共32个: auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while
本节的主要概念包括: 标识符:用来标识程序中的变量、符号常量、函数、数组、类型、文件 等对象的名字。 标识符只能由字母、数字和下划线组成,且第一个字符必需为字母或 下划线。C语言中大小写字母是两个不同的字符。 关键字:标识符的一个特殊的集合。其中的标识符在C语言中有预先定 义好的特殊意义。不能用于其他任何目的。 C语言的关键字共32个: auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while 2.1 标识符和关键字
2.2C语言数据类型 ◆类型:类型把数据和施加于数据之上的运算结合为一个统一体, 数据类型规定了该类型的数据在内存中的编码方式和长度、数 据的取值范围、施加在该类型数据上的运算及运算结果的范围 ◆C语言的基本数据类型 整数类型int 字符类型char 实数类型 float和 double ◆数据外部表示:书写源程序时采用的形式,或人给运行中的程 序提供数据时采用的形式,或人从程序中得到的输出所具有的 形式。也称字面量。是用ASCI字符方式表示的 ◆数据内部表示:数据在计算机内部的二进制编码形式,是计算 机处理采用的形式
类型: 类型把数据和施加于数据之上的运算结合为一个统一体, 数据类型规定了该类型的数据在内存中的编码方式和长度、数 据的取值范围、施加在该类型数据上的运算及运算结果的范围。 C语言的基本数据类型: 整数类型 int 字符类型 char 实数类型 float和double 数据外部表示:书写源程序时采用的形式,或人给运行中的程 序提供数据时采用的形式,或人从程序中得到的输出所具有的 形式。也称字面量。是用ASCII字符方式表示的。 数据内部表示:数据在计算机内部的二进制编码形式,是计算 机处理采用的形式。 2.2 C语言数据类型
2.2C语言数据类型 2.2.1整数类型——一整数类型简称整型,类型名为“int” 1.整型数据的内部表示—补码( complement) ◆一个正数的补码和其原码的形式相同,负数的补码将该数的 绝对值的二进制形式按位求反,再加1 例:整数100和-100的内部表示形式 100的二进制表示为1100100,100的内部表示为: 0000000001100100 100的内部表示方法: 100的原码 00000 0001 取反 11100110 再加上得到1111111110011100是-100的补码
2.2.1 整数类型 —— 整数类型简称整型,类型名为“int” 1.整型数据的内部表示 ——补码(complement) 一个正数的补码和其原码的形式相同,负数的补码将该数的 绝对值的二进制形式按位求反,再加1。 例:整数100和-100的内部表示形式: 100的二进制表示为1100100,100的内部表示为: 2.2 C语言数据类型 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -100的内部表示方法 : 100的原码 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 取反 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 再加上1得到 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 是-100的补码
2.2C语言数据类型 2.2.1整数类型——一整数类型简称整型,类型名为“int” 2.整型分类 标准C定义的整型类型 类型。字节数 最小取值范围 Signe 2 3286-3237即25-(251)1 ● unsigned inta 0~6535p0~(26.1) signed short[int-2 378-32767即-215~(21.1)4 unsigned short [int]2> 0~65535即0~(26.1) [signed long lint44-2413648-2147483647即-21-(21)4 unsigned long [int]-4+ 0-429490750-212-(2-11)
2.2.1 整数类型 —— 整数类型简称整型,类型名为“int” 2.整型分类 标准C定义的整型类型 2.2 C语言数据类型
2.2C语言数据类型 221整数类型整数类型简称整型,类型名为“int 3.整数的表示 (1)十进制表示:用一串连续的数字表示十进制数。负数在前面加负号 -,除表示整数0外,不以0开头(以0开头的数字串会被解释成八进 制数)。后缀‘1或“L表示长整型,“u或“U表示无符号数。 例:345316840-23456459L356156789u567LU (2)八进制表示:以数字0开头的一个连续数字序列,序列中只能有0-7 这八个数字。后缀和负号的使用与十进制相同。 例:045-078067451017777u而019、423是非法的八进制数。 (3)十六进制表示:以0或0x开头的连续数字和字母序列,序列中只能 有0-9、A-F和a-f这些数字和字母,字母a、b、c、d、e、f分别对应 数字10、11、12、13、14、15,大小写均可。后缀和负号的使用与十 进制相同。 t ] 0x10 0X255 0xd4ef 0X6a7bL
2.2.1 整数类型—— 整数类型简称整型,类型名为“int” 3.整数的表示 (1)十进制表示:用一串连续的数字表示十进制数。负数在前面加负号 ‘-’ ,除表示整数0外,不以0开头(以0开头的数字串会被解释成八进 制数)。后缀‘l’或‘L’表示长整型, ‘u’或‘U’表示无符号数。 例:345 31684 0 -23456 459L 356l 56789u 567LU (2)八进制表示:以数字0开头的一个连续数字序列,序列中只能有0-7 这八个数字。后缀和负号的使用与十进制相同。 例:045 -078 06745l 0177777u 而019、423是非法的八进制数。 (3)十六进制表示:以0X或0x开头的连续数字和字母序列,序列中只能 有0-9、A-F和 a-f这些数字和字母,字母a、b、c、d、e、f分别对应 数字10、11、12、13、14、15,大小写均可。后缀和负号的使用与十 进制相同。 例:0x10 0X255 0xd4ef 0X6a7bL 2.2 C语言数据类型
2.2C语言数据类型 2.22实数类型——实数类型简称实型。整型和实型统称为算术类型 1.实型数据的内部表示—指数法用数符、尾数、阶符、阶码四部分来 表示一个实数 ◆尾数是纯小数,表示实数的有效数值,尾数的位数决定实数有效范围 ◆数符,表示实数的正负; ◆阶码是整数,表示指数,即尾数中小数点向左或向右移动的个数,限定 了数的范围; ◆阶符是阶码的符号,表示尾数中小数点移动的方向。 实数的值=(数符)尾数×2(阶符)阶码 2.实型分类 C提供三种表示实数的类型 单精度浮点数类型,简称“浮点”类型,类型名为 float 双精度浮点数类型,类型名为 double 长双精度浮点数类型,类型名为 long double
2.2.2 实数类型——实数类型简称实型。整型和实型统称为算术类型。 1.实型数据的内部表示 ——指数法用数符、尾数、阶符、阶码四部分来 表示一个实数。 尾数是纯小数,表示实数的有效数值,尾数的位数决定实数有效范围 数符,表示实数的正负; 阶码是整数,表示指数,即尾数中小数点向左或向右移动的个数,限定 了数的范围; 阶符是阶码的符号,表示尾数中小数点移动的方向。 实数的值=(数符)尾数×2 (阶符)阶码 2.实型分类 C提供三种表示实数的类型: 单精度浮点数类型,简称“浮点”类型,类型名为float 双精度浮点数类型,类型名为double 长双精度浮点数类型,类型名为long double 2.2 C语言数据类型
2.2C语言数据类型 ●22.2实数类型 3.实型数的表示 C语言中最基本的实数类型是双精度类型。有两种表示形式 (1)小数形式。由数字和小数点组成,必须有小数点 例:4.23、0.15、.56、78.、0.0 字母e或E之前必须要有数字,且字母e或E后面的指数必须为整数,字 母e或E的前后及数字之间不得有空格 例:2.3e5、500e-2、.5E3、4.5e0,而e4、.5e3.6、.e5、e都不合法 ◆如果表示浮点类型和长双精度类型,在双精度数的最后附加后缀字符 f(或F)和1(或L)。 例:34.2f、.5F、12.56L、2.5E3L ●◆规范化的指数形式:一个实数的指数形式表示方法不止一种,小数点的 左边有一位非0的数字的表示法“规范化的指数形式。可以有统一的 表示形式,被输出函数所采用。 4.实型数的舍入误差
2.2.2 实数类型 3.实型数的表示 C语言中最基本的实数类型是双精度类型。有两种表示形式: (1)小数形式。由数字和小数点组成,必须有小数点。 例:4.23、0.15、.56、78.、0.0 (2)指数形式。以幂的形式表示,以字母e或E后跟一个以10为底的幂数。 字母e或E之前必须要有数字,且字母e或E后面的指数必须为整数,字 母e或E的前后及数字之间不得有空格。 例:2.3e5、500e-2、.5E3、4.5e0,而e4、.5e3.6、.e5、e都不合法 如果表示浮点类型和长双精度类型,在双精度数的最后附加后缀字符 f(或F)和l(或L)。 例:34.2f、.5F、12.56L、2.5E3L 规范化的指数形式:一个实数的指数形式表示方法不止一种,小数点的 左边有一位非0的数字的表示法“规范化的指数形式。可以有统一的 表示形式,被输出函数所采用。 4.实型数的舍入误差 2.2 C语言数据类型
2.2C语言数据类型 2.3字符型数据 类型名是char 1.字符类型 字符内部表示占用一个字节,用对应ASCI编码的二进制形式存储 例:字符‘A的ASCI代码为65,则内存中字符A表示形式为65的二进 制表示“01000001°。 C语言把字符类型看作一种特别短的整数类型。允许参与算术运算 例:‘A+2表示将‘A'的 ASCII码65加2,结果67是字符‘C的 ASCII码。 转义字符: 具有控制含义的转义字符,在输入输出时会引起设备完 成相应的动作 2.字符串 双引号括起来的一串字符 字符串结束标志:“0 字符串的内部表示方法:使用一片连续的字节空间,依次存放字符串的 每一个字符,在结尾处加特殊字符“\0°,表示字符串结束 注意:字符和字符串表示形式的区别,’a?和”a”有什么不同? 数字和数字字符的区别,1和”1有什么不同? 空字符‘0°和空格字符‘’的区别,它们的ASCI码值有什么不
2.2.3 字符型数据——— 类型名是char 1. 字符类型 字符内部表示占用一个字节,用对应ASCII编码的二进制形式存储。 例:字符‘A’的ASCII代码为65,则内存中字符‘A’表示形式为65的二进 制表示‘01000001’。 C语言把字符类型看作一种特别短的整数类型。允许参与算术运算。 例:‘A’+ 2 表示将‘A’的ASCII码65加2,结果67是字符‘C’的ASCII码。 转义字符:‘\’,具有控制含义的转义字符,在输入输出时会引起设备完 成相应的动作。 2.字符串 —— 双引号括起来的一串字符 字符串结束标志:‘\0’ 字符串的内部表示方法:使用一片连续的字节空间,依次存放字符串的 每一个字符,在结尾处加特殊字符‘\0’ ,表示字符串结束。 注意:字符和字符串表示形式的区别, ’a’和”a”有什么不同? 数字和数字字符的区别,1和’1’有什么不同? 空字符‘\0’和空格字符‘ ’的区别,它们的ASCII码值有什么不 同? 2.2 C语言数据类型
2.3常量和变量 2.3.1常量和符号常量 常量:程序运行中,其值不能被改变的量 符号常量:用标识符表示的常量 定义符号常量 # define符号常量名常量值 例:# define PAl3.14159 /*定义符号常量代表圆周率 注意使用符号常量的好处及编译对符号常量的处理方法 2.3.2变量 变量:程序运行中,其值可以改变的量称 变量的名字、地址及其关系 变量与类型的关系
2.3.1 常量和符号常量 常量:程序运行中,其值不能被改变的量 符号常量:用标识符表示的常量 定义符号常量 : #define 符号常量名 常量值 例:#define PAI 3.14159 /*定义符号常量代表圆周率 */ 注意使用符号常量的好处及编译对符号常量的处理方法。 2.3.2 变量 变量:程序运行中,其值可以改变的量称 变量的名字、地址及其关系 变量与类型的关系 2.3 常量和变量