数据类型、运算符与表达式精品文稿.ppt

上传人:石*** 文档编号:78731473 上传时间:2023-03-19 格式:PPT 页数:72 大小:3.14MB
返回 下载 相关 举报
数据类型、运算符与表达式精品文稿.ppt_第1页
第1页 / 共72页
数据类型、运算符与表达式精品文稿.ppt_第2页
第2页 / 共72页
点击查看更多>>
资源描述

《数据类型、运算符与表达式精品文稿.ppt》由会员分享,可在线阅读,更多相关《数据类型、运算符与表达式精品文稿.ppt(72页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、数据类型、运算符与表达式第1页,本讲稿共72页C C语言提供的数据结构是以数据类型的形式出现的语言提供的数据结构是以数据类型的形式出现的语言提供的数据结构是以数据类型的形式出现的语言提供的数据结构是以数据类型的形式出现的用指针、结构体还可构成链表、树、栈等复杂的数据结构用指针、结构体还可构成链表、树、栈等复杂的数据结构用指针、结构体还可构成链表、树、栈等复杂的数据结构用指针、结构体还可构成链表、树、栈等复杂的数据结构整型整型整型整型字符型字符型字符型字符型实型实型实型实型(浮点型浮点型浮点型浮点型)枚举类型枚举类型枚举类型枚举类型单精度型单精度型单精度型单精度型双精度型双精度型双精度型双精度型

2、数组类型数组类型数组类型数组类型结构体类型结构体类型结构体类型结构体类型共用体类型共用体类型共用体类型共用体类型基本类型基本类型基本类型基本类型构造类型构造类型构造类型构造类型指针类型指针类型指针类型指针类型空类型空类型空类型空类型(void)(void)数据类型数据类型数据类型数据类型第2页,本讲稿共72页3.2 3.2 常量与变量常量与变量3.2.1 3.2.1 3.2.1 3.2.1 常量和符号常量常量和符号常量常量和符号常量常量和符号常量常量常量常量常量:在程序执行过程中,数值始终保持不变的量。在程序执行过程中,数值始终保持不变的量。在程序执行过程中,数值始终保持不变的量。在程序执行过

3、程中,数值始终保持不变的量。整型整型整型整型:5,-26,0:5,-26,0 实型实型实型实型:3.14,-2.45,2.17e3:3.14,-2.45,2.17e3 字符字符字符字符:a,1,A,$:a,1,A,$标识符(符号)标识符(符号)标识符(符号)标识符(符号)例如:例如:例如:例如:#define pi 3.14#define pi 3.14 常量一般从其字面形式即可判别。常量一般从其字面形式即可判别。常量一般从其字面形式即可判别。常量一般从其字面形式即可判别。第3页,本讲稿共72页例例例例3.13.1#define PRICE 30#define PRICE 30void mai

4、n()void main()int num,total;int num,total;num=10;num=10;total=num*PRICE;total=num*PRICE;printf(“total=%d”,total);printf(“total=%d”,total);输出输出输出输出:total=300:total=300 符号常量:见名知意,程序中一改全改。符号常量:见名知意,程序中一改全改。符号常量:见名知意,程序中一改全改。符号常量:见名知意,程序中一改全改。第4页,本讲稿共72页3.2.2 3.2.2 变量变量变量变量变量变量:在程序执行过程中,其值可以变化的量。在程序执行过程

5、中,其值可以变化的量。在程序执行过程中,其值可以变化的量。在程序执行过程中,其值可以变化的量。1.1.变量名:由合法标识符组成。变量名:由合法标识符组成。变量名:由合法标识符组成。变量名:由合法标识符组成。2.2.标识符:字母、数字、下划线序列构成。标识符:字母、数字、下划线序列构成。标识符:字母、数字、下划线序列构成。标识符:字母、数字、下划线序列构成。第一个字符必须是字母或下划线,如:第一个字符必须是字母或下划线,如:第一个字符必须是字母或下划线,如:第一个字符必须是字母或下划线,如:abs,_12,a3c5 abs,_12,a3c5 3b,a$e,Wang-1 3b,a$e,Wang-1

6、3.3.标识符长度:标识符长度:标识符长度:标识符长度:一般一般一般一般1818个合法字符。个合法字符。个合法字符。个合法字符。第5页,本讲稿共72页4.4.大小写字母有区别,如,大小写字母有区别,如,大小写字母有区别,如,大小写字母有区别,如,A A,a a是两个不同的标识符。是两个不同的标识符。是两个不同的标识符。是两个不同的标识符。5.5.使用方法:按先声明后使用的原则。使用方法:按先声明后使用的原则。使用方法:按先声明后使用的原则。使用方法:按先声明后使用的原则。6.6.变量类型能进行有关运算的合法性检查,如变量类型能进行有关运算的合法性检查,如变量类型能进行有关运算的合法性检查,如变

7、量类型能进行有关运算的合法性检查,如a%b,a%b,两边必须两边必须两边必须两边必须是整型数据。是整型数据。是整型数据。是整型数据。7.7.不同类型的变量,占据不同长度的存储单元,不同类型的变量,占据不同长度的存储单元,不同类型的变量,占据不同长度的存储单元,不同类型的变量,占据不同长度的存储单元,要区分变量要区分变量要区分变量要区分变量名和变量值两个不同的概念。名和变量值两个不同的概念。名和变量值两个不同的概念。名和变量值两个不同的概念。3 3变量名变量名变量名变量名变量值变量值变量值变量值存储单元存储单元存储单元存储单元a a第6页,本讲稿共72页3.3 3.3 整型数据整型数据3.3.1

8、 3.3.1 3.3.1 3.3.1 整型常量整型常量整型常量整型常量1 1、十进制整数、十进制整数、十进制整数、十进制整数:如如如如 29,-36,0 29,-36,02 2、八进制整数、八进制整数、八进制整数、八进制整数:以以以以0 0开头开头开头开头,后跟后跟后跟后跟0707中的若干数字中的若干数字中的若干数字中的若干数字;如如如如:0123:0123 (83)(83)10103 3、十六进整制、十六进整制、十六进整制、十六进整制:以以以以0 x0 x开头开头开头开头,后跟后跟后跟后跟09,A,B,C,D,E,F09,A,B,C,D,E,F(可小写)中的(可小写)中的(可小写)中的(可小

9、写)中的 若干字符若干字符若干字符若干字符,如如如如0 xA2 0 xA2(162)(162)1010第7页,本讲稿共72页3.3.2 3.3.2 整型变量整型变量1 1、整型变量在内存中的存放形式、整型变量在内存中的存放形式、整型变量在内存中的存放形式、整型变量在内存中的存放形式数据在内存中是以二进制补码形式存放的。数据在内存中是以二进制补码形式存放的。数据在内存中是以二进制补码形式存放的。数据在内存中是以二进制补码形式存放的。例:例:例:例:int i,j;int i,j;i=10;j=-10;i=10;j=-10;求负数补码:求负数补码:求负数补码:求负数补码:求该数的绝对值的二进制;求

10、该数的绝对值的二进制;求该数的绝对值的二进制;求该数的绝对值的二进制;对其值连同符号位一起求反加对其值连同符号位一起求反加对其值连同符号位一起求反加对其值连同符号位一起求反加1 1i i10 10 数据数据数据数据i i存放示意图存放示意图存放示意图存放示意图数据数据数据数据i i在内存中实际存放情况在内存中实际存放情况在内存中实际存放情况在内存中实际存放情况0 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 1 0 1 00 0 0 0 1 0 1 0-10-10 j j数据数据数据数据j j存放示意图存放示意图存放示意图存放示意图数据数据数据数据j j在内存中实际存

11、放情况在内存中实际存放情况在内存中实际存放情况在内存中实际存放情况1 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 0 1 1 01 1 1 1 0 1 1 0第8页,本讲稿共72页2 2、整型变量的分类、整型变量的分类、整型变量的分类、整型变量的分类根据数值的范围可定义以下类型的变量:根据数值的范围可定义以下类型的变量:根据数值的范围可定义以下类型的变量:根据数值的范围可定义以下类型的变量:1 1、基本型:用、基本型:用、基本型:用、基本型:用int int 定义定义定义定义2 2、短整型:用、短整型:用、短整型:用、短整型:用short int short int

12、 或或或或 short short 定义定义定义定义3 3、长整型:用、长整型:用、长整型:用、长整型:用long int long int 或或或或 long long 定义定义定义定义 整:整:整:整:unsigned intunsigned int4 4、无符号型:、无符号型:、无符号型:、无符号型:短整:短整:短整:短整:unsigned shortunsigned short 长整:长整:长整:长整:unsigned longunsigned long第9页,本讲稿共72页无符号数据的特点:无符号数据的特点:无符号数据的特点:无符号数据的特点:最高位不是作为符号位,而是作为存放有效数

13、值本身。最高位不是作为符号位,而是作为存放有效数值本身。最高位不是作为符号位,而是作为存放有效数值本身。最高位不是作为符号位,而是作为存放有效数值本身。例:例:例:例:int a;/*aint a;/*a的数值范围为的数值范围为的数值范围为的数值范围为-32768 32767*/-32768 32767*/unsigned int b;/*b unsigned int b;/*b的数值范围为的数值范围为的数值范围为的数值范围为0 65535*/0 65535*/符号位符号位符号位符号位有符号整型变量有符号整型变量有符号整型变量有符号整型变量a a=32767=327670 1 1 1 1 1

14、1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 无符号整型变量无符号整型变量无符号整型变量无符号整型变量b b=65535=655351 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 数值有效位数值有效位数值有效位数值有效位第10页,本讲稿共72页 ANSI ANSI 定义的整数类型定义的整数类型定义的整数类型定义的整数类型 类型类型类型类型 比特数比特数比特数比特数 取值范围取值范围取值范围取值范围int 16 -3276832767int 16 -3276832

15、767short 16 -3276832767short 16 -3276832767long 32 -21474836482147483647long 32 -21474836482147483647unsigned int 16 065535unsigned int 16 065535unsigned short 16 065535unsigned short 16 065535unsigned long 32 04294967297unsigned long 32 04294967297第11页,本讲稿共72页以十进制数以十进制数以十进制数以十进制数1313为例,说明该数在内存中的存储情

16、况为例,说明该数在内存中的存储情况为例,说明该数在内存中的存储情况为例,说明该数在内存中的存储情况 其中:带符号数在内存中存储形式是:最左边一位其中:带符号数在内存中存储形式是:最左边一位其中:带符号数在内存中存储形式是:最左边一位其中:带符号数在内存中存储形式是:最左边一位(最高位)是符号位,正为最高位)是符号位,正为最高位)是符号位,正为最高位)是符号位,正为0 0负为负为负为负为1 1不带符号的数在内存中的存储形式是:最左边一位(最高位)是数值的有效位不带符号的数在内存中的存储形式是:最左边一位(最高位)是数值的有效位不带符号的数在内存中的存储形式是:最左边一位(最高位)是数值的有效位不

17、带符号的数在内存中的存储形式是:最左边一位(最高位)是数值的有效位0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 10 0 0 0 0 0 0 0 0 0 0 0 1 1 0 10 0 0 0 0 0 0 0 0 0 0 0 1 1 0 10 0 0 0 0 0 0 0 0 0 0 0 1 1 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 10 0 0 0 0 0 0 0 0 0 0 0 1 1 0 10 0 0 0 0 0 0 0 0

18、0 0 0 1 1 0 10 0 0 0 0 0 0 0 0 0 0 0 1 1 0 10 0 0 0 0 0 0 0 0 0 0 0 1 1 0 10 0 0 0 0 0 0 0 0 0 0 0 1 1 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 10 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1符符符符号号号号位位位位intintshortshortlonglongunsigned intunsigned intunsigned

19、shortunsigned shortunsigned longunsigned long第12页,本讲稿共72页3 3、整型变量的定义、整型变量的定义、整型变量的定义、整型变量的定义变量类型定义的目的:让编译为其分配内存单元。变量类型定义的目的:让编译为其分配内存单元。变量类型定义的目的:让编译为其分配内存单元。变量类型定义的目的:让编译为其分配内存单元。变量的定义一般在函数开始的声明部分,也可以在分程序变量的定义一般在函数开始的声明部分,也可以在分程序变量的定义一般在函数开始的声明部分,也可以在分程序变量的定义一般在函数开始的声明部分,也可以在分程序 中,若在分程中,若在分程中,若在分程中

20、,若在分程序中定义,其作用域仅在分程序中有效。序中定义,其作用域仅在分程序中有效。序中定义,其作用域仅在分程序中有效。序中定义,其作用域仅在分程序中有效。例例例例3.23.2void main()void main()int a,b,c,d;unsigned int u;int a,b,c,d;unsigned int u;a=12;b=-24;u=10;a=12;b=-24;u=10;c=a+u;d=b+u;c=a+u;d=b+u;printf(“a+u=%d,b+u=%dn”,c,d);printf(“a+u=%d,b+u=%dn”,c,d);运算结果:运算结果:运算结果:运算结果:a+u

21、=22,b+u=-14a+u=22,b+u=-14由此可见:不同类型的整型数据可以进行混合运算由此可见:不同类型的整型数据可以进行混合运算由此可见:不同类型的整型数据可以进行混合运算由此可见:不同类型的整型数据可以进行混合运算第13页,本讲稿共72页4 4、整型数据的溢出、整型数据的溢出、整型数据的溢出、整型数据的溢出int int 型变量允许的最大值为型变量允许的最大值为型变量允许的最大值为型变量允许的最大值为32767,32767,如果大于此数,将产生溢出如果大于此数,将产生溢出如果大于此数,将产生溢出如果大于此数,将产生溢出例例例例3.3 3.3 整型数据的溢出情况整型数据的溢出情况整型

22、数据的溢出情况整型数据的溢出情况void main()void main()int a,b;int a,b;a=32767;b=a+1;a=32767;b=a+1;printf(“%d,%d”,a,b);printf(“%d,%d”,a,b);运行结果:运行结果:运行结果:运行结果:32767,-3276832767,-32768变量变量变量变量a a是正整数的最大值,加是正整数的最大值,加是正整数的最大值,加是正整数的最大值,加1 1后赋给后赋给后赋给后赋给b b,使数值有效位占据符号位。,使数值有效位占据符号位。,使数值有效位占据符号位。,使数值有效位占据符号位。此种情况,编译系统不会报错

23、,这要靠编程者把握。此种情况,编译系统不会报错,这要靠编程者把握。此种情况,编译系统不会报错,这要靠编程者把握。此种情况,编译系统不会报错,这要靠编程者把握。0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1a:a:3276732767 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0b:b:-32768-32768 第14页,本讲稿共72页3.3.3 3.3.3 3.3.3 3.3.3 整型常量的类型整型常量的类型整型常量的类型整型常量的类型

24、整型常量本身隐含了某种数据类型,将整型常量赋给整型变整型常量本身隐含了某种数据类型,将整型常量赋给整型变整型常量本身隐含了某种数据类型,将整型常量赋给整型变整型常量本身隐含了某种数据类型,将整型常量赋给整型变量时,要考虑常量的大小和变量所能表示的数据范围。量时,要考虑常量的大小和变量所能表示的数据范围。量时,要考虑常量的大小和变量所能表示的数据范围。量时,要考虑常量的大小和变量所能表示的数据范围。一个整数,其值在如下范围:一个整数,其值在如下范围:一个整数,其值在如下范围:一个整数,其值在如下范围:(1 1)-3276832767 -3276832767 int,short int,long

25、int int,short int,long int(2 2)-21474836482147483647 -21474836482147483647 long int long int(3 3)对于非负数,)对于非负数,)对于非负数,)对于非负数,如:如:如:如:065535 065535 unsigned int,unsigned short unsigned int,unsigned short 04294967295 04294967295 unsigned long unsigned long说明:说明:说明:说明:1.1.常量中无常量中无常量中无常量中无 unsigned unsig

26、ned 类型的数,正整数可赋给类型的数,正整数可赋给类型的数,正整数可赋给类型的数,正整数可赋给unsigned unsigned 变量,只要数值不超变量,只要数值不超变量,只要数值不超变量,只要数值不超过范围。过范围。过范围。过范围。2.2.在整型常量后加在整型常量后加在整型常量后加在整型常量后加 l l 或或或或 L L 表示长整型常量,如表示长整型常量,如表示长整型常量,如表示长整型常量,如:456L:456L。3.3.在函数调用时,若被调用函数的形参是长整型变量,则要求主调函数的实在函数调用时,若被调用函数的形参是长整型变量,则要求主调函数的实在函数调用时,若被调用函数的形参是长整型变

27、量,则要求主调函数的实在函数调用时,若被调用函数的形参是长整型变量,则要求主调函数的实参也是长整型数据。参也是长整型数据。参也是长整型数据。参也是长整型数据。第15页,本讲稿共72页3.4 3.4 实型数据实型数据3.4.1 3.4.1 3.4.1 3.4.1 实型常量的表示方法实型常量的表示方法实型常量的表示方法实型常量的表示方法实数又称浮点数实数又称浮点数实数又称浮点数实数又称浮点数1.1.十进制形式的实数:由数字和小数点组成。十进制形式的实数:由数字和小数点组成。十进制形式的实数:由数字和小数点组成。十进制形式的实数:由数字和小数点组成。如:如:如:如:3.14,0.26,0.0,-32

28、6.453.14,0.26,0.0,-326.452.2.指数形式的实数:由尾数部分、字母指数形式的实数:由尾数部分、字母指数形式的实数:由尾数部分、字母指数形式的实数:由尾数部分、字母e e 或或或或E E、指数部分组成。、指数部分组成。、指数部分组成。、指数部分组成。如:如:如:如:48.62e+12,48.62e+12,其中:其中:其中:其中:48.6248.62为尾数,为尾数,为尾数,为尾数,+12+12为指数为指数为指数为指数 e e为基数为基数为基数为基数10,10,它表示它表示它表示它表示48.6248.62 1010 12 12 C C规定:规定:规定:规定:e e的前面要有数

29、字,的前面要有数字,的前面要有数字,的前面要有数字,e e的后面要有整数。的后面要有整数。的后面要有整数。的后面要有整数。第16页,本讲稿共72页3.4.2 3.4.2 3.4.2 3.4.2 实型变量实型变量实型变量实型变量1 1、实型数据在内存中的存放形式、实型数据在内存中的存放形式、实型数据在内存中的存放形式、实型数据在内存中的存放形式 float float 型变量:型变量:型变量:型变量:3232位位位位 double double型变量:型变量:型变量:型变量:6464位位位位数符数符数符数符 阶符阶符阶符阶符 d d2929(7(7位阶码位阶码位阶码位阶码)d)d2323 d d

30、2222 (23 (23位规格化数补码)位规格化数补码)位规格化数补码)位规格化数补码)d d0 0 2 2127127 10 10 3838数符数符数符数符 阶符阶符阶符阶符 d d6161 (10 (10位阶码)位阶码)位阶码)位阶码)d d5252 d d5151 (52 (52位规格化数补码)位规格化数补码)位规格化数补码)位规格化数补码)d d0 02 210231023 10 10 308308第17页,本讲稿共72页2 2、实型变量的分类、实型变量的分类、实型变量的分类、实型变量的分类floatfloat型表示数的范围:型表示数的范围:型表示数的范围:型表示数的范围:最大正数:(

31、最大正数:(最大正数:(最大正数:(1-21-2-23-23)2 2 127 127=10=10 38 38最小负数:最小负数:最小负数:最小负数:-1-1 2 2 127 127 =-10 =-10 38 38接近接近接近接近0 0的正数:的正数:的正数:的正数:2 2-1-1 2 2-128-128=3.9=3.9 10 10-38-38接近接近接近接近0 0的负数:的负数:的负数:的负数:-(2 2-1-1+2+2-23-23)2 2-128-128=-3.9 =-3.9 10 10-38-38doubledouble型表示数的范围:型表示数的范围:型表示数的范围:型表示数的范围:最大正

32、数:(最大正数:(最大正数:(最大正数:(1-21-2-52-52 )2 210231023=10=10 308 308最小负数:最小负数:最小负数:最小负数:-1-1 2 210231023 =-10 =-10308308接近接近接近接近0 0的正数:的正数:的正数:的正数:2 2-1-1 2 2-1024-1024=10=10-308-308接近接近接近接近0 0的负数:的负数:的负数:的负数:-(2 2-1-1+2+2-52-52)2 2-1024-1024=-10=-10-308-308long doublelong double型表示数的范围:型表示数的范围:型表示数的范围:型表示数

33、的范围:最大正数:最大正数:最大正数:最大正数:-10-1049324932 10 1049324932第18页,本讲稿共72页实型常量可赋给实型常量可赋给实型常量可赋给实型常量可赋给 float float 或或或或doubledouble型变量,根据变量类型截取实型型变量,根据变量类型截取实型型变量,根据变量类型截取实型型变量,根据变量类型截取实型常量的有效位。常量的有效位。常量的有效位。常量的有效位。单精度实型数据(单精度实型数据(单精度实型数据(单精度实型数据(floatfloat)表数范围:)表数范围:)表数范围:)表数范围:十进制形式:十进制形式:十进制形式:十进制形式:6767位

34、有效位位有效位位有效位位有效位 指数形式:指数形式:指数形式:指数形式:.e e 双精度实型数据(双精度实型数据(双精度实型数据(双精度实型数据(double)double)表数范围:表数范围:表数范围:表数范围:十进制形式:十进制形式:十进制形式:十进制形式:15161516位有效位位有效位位有效位位有效位 指数形式:指数形式:指数形式:指数形式:.e e 长双精度实型数据长双精度实型数据长双精度实型数据长双精度实型数据(long double)(long double)表示数据范围:表示数据范围:表示数据范围:表示数据范围:指数形式:指数形式:指数形式:指数形式:.e e 第19页,本讲稿

35、共72页3 3、实型数据的舍入误差、实型数据的舍入误差、实型数据的舍入误差、实型数据的舍入误差存储单元所限,有效位以外的数字将被舍去,可能有一些误差。存储单元所限,有效位以外的数字将被舍去,可能有一些误差。存储单元所限,有效位以外的数字将被舍去,可能有一些误差。存储单元所限,有效位以外的数字将被舍去,可能有一些误差。例例例例3.43.4void main()void main()float a,b;long double c;a=123456.789e5;float a,b;long double c;a=123456.789e5;b=a+20;c=123456789.123456789e49

36、23;b=a+20;c=123456789.123456789e4923;printf(“a=%fn b=%fn c=%Lfn”,a,b,c);printf(“a=%fn b=%fn c=%Lfn”,a,b,c);输出结果:输出结果:输出结果:输出结果:a=12345678848.000000a=12345678848.000000b=12345678848.000000b=12345678848.000000c=1.234567891234567890000000000000000000000e+4931c=1.234567891234567890000000000000000000000e

37、+4931a a的值比的值比的值比的值比2020大的多,大的多,大的多,大的多,a+20a+20的理论值是的理论值是的理论值是的理论值是12345678920,12345678920,而有效位只有而有效位只有而有效位只有而有效位只有7 7位,位,位,位,因此,后面的数字是无意义的。因此,后面的数字是无意义的。因此,后面的数字是无意义的。因此,后面的数字是无意义的。第20页,本讲稿共72页3.4.3 3.4.3 实型常量的类型实型常量的类型实型常量的类型实型常量的类型1 1、未加说明,系统将实型常量作为双精度处理、未加说明,系统将实型常量作为双精度处理、未加说明,系统将实型常量作为双精度处理、未

38、加说明,系统将实型常量作为双精度处理例:例:例:例:float f;float f;f=2.45678*4532.65f=2.45678*4532.65系统将两数按双精度运算,然后将乘积前系统将两数按双精度运算,然后将乘积前系统将两数按双精度运算,然后将乘积前系统将两数按双精度运算,然后将乘积前7 7位赋给实型变量位赋给实型变量位赋给实型变量位赋给实型变量f,f,缺点:浪费系统资源,降低运算速度;缺点:浪费系统资源,降低运算速度;缺点:浪费系统资源,降低运算速度;缺点:浪费系统资源,降低运算速度;解决的办法:在数的后面加解决的办法:在数的后面加解决的办法:在数的后面加解决的办法:在数的后面加f

39、 f,如,如,如,如2.45678f2.45678f,系统将其按单精度,系统将其按单精度,系统将其按单精度,系统将其按单精度数运算。数运算。数运算。数运算。第21页,本讲稿共72页2 2、实型常量赋给、实型常量赋给、实型常量赋给、实型常量赋给floatfloat或或或或doubledouble类型变量时,根据变量的类型变量时,根据变量的类型变量时,根据变量的类型变量时,根据变量的类型截取其有效位。类型截取其有效位。类型截取其有效位。类型截取其有效位。例例例例3.4.13.4.1main()main()float f1;double f2;float f1;double f2;f1=111111

40、.111;f2=111111.11111;f1=111111.111;f2=111111.11111;printf(“f1=%fnf2=%lfn”,f1,f2);printf(“f1=%fnf2=%lfn”,f1,f2);输出结果:输出结果:输出结果:输出结果:f1=111111.109375f1=111111.109375 f2=111111.111110 f2=111111.111110第22页,本讲稿共72页3.5 3.5 字符型数据字符型数据3.5.1 3.5.1 字符常量字符常量字符常量字符常量字符常量:用一对单引号括起的一个字符,如字符常量:用一对单引号括起的一个字符,如字符常量:

41、用一对单引号括起的一个字符,如字符常量:用一对单引号括起的一个字符,如a,A,#,9a,A,#,9说明:说明:说明:说明:1.1.字符常量的值是该字符在字符常量的值是该字符在字符常量的值是该字符在字符常量的值是该字符在ASCIIASCII码中的码值码中的码值码中的码值码中的码值(P374)(P374)。2.a 2.a 和和和和A A 是两个不同的字符常量,是两个不同的字符常量,是两个不同的字符常量,是两个不同的字符常量,a a 97,A 97,A 65 65 3.3.开头的字符序列称为特殊形式的字符常量(转义字符)开头的字符序列称为特殊形式的字符常量(转义字符)开头的字符序列称为特殊形式的字符

42、常量(转义字符)开头的字符序列称为特殊形式的字符常量(转义字符)常用的转义字符功能及码值常用的转义字符功能及码值常用的转义字符功能及码值常用的转义字符功能及码值转义字符转义字符转义字符转义字符 功功功功 能能能能 十进制的十进制的十进制的十进制的ASCIIASCII码值码值码值码值 a a 响铃响铃响铃响铃 7 7 b b 退格退格退格退格 8 8 f f 换页换页换页换页 12 12 n n 换行换行换行换行 10 10 r r 回车回车回车回车 13 13 t t 横向跳八格横向跳八格横向跳八格横向跳八格 9 9 ddd 13 ddd 13位八进制位八进制位八进制位八进制 101 101

43、A A xhh 12 xhh 12位十六进制位十六进制位十六进制位十六进制 x42 x42 B B 第23页,本讲稿共72页例例例例3.53.5void main()void main()printf(“-n”);printf(“-n”);printf(“_ab_ct_derftgn”);printf(“_ab_ct_derftgn”);printf(“htibbj_kn”);printf(“htibbj_kn”);运行结果:运行结果:运行结果:运行结果:-f gde f gde h j_k h j_k第24页,本讲稿共72页3.5.2 3.5.2 字符变量字符变量字符变量字符变量字符变量:用

44、于存放一个字符常量。字符变量:用于存放一个字符常量。字符变量:用于存放一个字符常量。字符变量:用于存放一个字符常量。字符变量的定义形式:字符变量的定义形式:字符变量的定义形式:字符变量的定义形式:char char 字符变量名字符变量名字符变量名字符变量名如:如:如:如:char c1,c2;/*char c1,c2;/*定义定义定义定义c1,c2c1,c2字符型变量,占一个字节字符型变量,占一个字节字符型变量,占一个字节字符型变量,占一个字节*/*/c1=a;c2=b;/*c1=a;c2=b;/*将字符常量将字符常量将字符常量将字符常量 a,b a,b 赋给赋给赋给赋给c1c1和和和和c2*

45、/c2*/3.5.3 3.5.3 字符数据在内存中的存储形式及使用方法字符数据在内存中的存储形式及使用方法字符数据在内存中的存储形式及使用方法字符数据在内存中的存储形式及使用方法字符常量字符常量字符常量字符常量字符变量中,是其字符变量中,是其字符变量中,是其字符变量中,是其ASCIIASCII码值,存储形式与整型数相码值,存储形式与整型数相码值,存储形式与整型数相码值,存储形式与整型数相似,整、字符型数据之间可通用。似,整、字符型数据之间可通用。似,整、字符型数据之间可通用。似,整、字符型数据之间可通用。第25页,本讲稿共72页例例例例3.63.6void main()void main()c

46、har c1,c2;char c1,c2;c1=97;c2=98;c1=97;c2=98;printf(“c1=%c,c2=%c n”,c1,c2);printf(“c1=%c,c2=%c n”,c1,c2);printf(“c1=%d,c2=%d n”,c1,c2);printf(“c1=%d,c2=%d n”,c1,c2);运行结果:运行结果:运行结果:运行结果:c1=a,c2=bc1=a,c2=b c1=97,c2=98 c1=97,c2=98c1c1c2c297979898内存中变量内存中变量内存中变量内存中变量c1c1、c2c2的值的值的值的值c1c1c2c2内存中变量内存中变量内存

47、中变量内存中变量c1c1、c2c2实际存储形式实际存储形式实际存储形式实际存储形式0 1 1 0 0 0 0 10 1 1 0 0 0 0 10 1 1 0 0 0 1 00 1 1 0 0 0 1 00 1 1 0 0 0 0 10 1 1 0 0 0 0 1 aa存储(存储(存储(存储(ASCIIASCII码码码码)“%c”%c”“%d”%d”a a9797输出格式符输出格式符输出格式符输出格式符显示显示显示显示第26页,本讲稿共72页例例例例3.7 3.7 3.7 3.7 大小写字母的转换大小写字母的转换大小写字母的转换大小写字母的转换voidvoid main()main()char

48、c1,c2;char c1,c2;c1=a;c2=b;c1=a;c2=b;c1=c1-32;c2=c2-32;c1=c1-32;c2=c2-32;printf(c1=%c,c2=%cn”,c1,c2);printf(c1=%c,c2=%cn”,c1,c2);运行结果:运行结果:运行结果:运行结果:c1=A,c2=Bc1=A,c2=Bc1=A,c2=Bc1=A,c2=B第27页,本讲稿共72页例例例例3.7.1 3.7.1 3.7.1 3.7.1 字符数据与整型数据之间可以相互赋值字符数据与整型数据之间可以相互赋值字符数据与整型数据之间可以相互赋值字符数据与整型数据之间可以相互赋值void ma

49、in()void main()int i;char c;c=97;i=a;int i;char c;c=97;i=a;printf(“%c,%dn”,c,c);printf(“%c,%dn”,i,i);printf(“%c,%dn”,c,c);printf(“%c,%dn”,i,i);运行结果:运行结果:运行结果:运行结果:a,97a,97 a,97 a,97字符数据占一个字节,当字符数据占一个字节,当字符数据占一个字节,当字符数据占一个字节,当ASCII ASCII 码值在码值在码值在码值在128255128255之间时,其最高位为之间时,其最高位为之间时,其最高位为之间时,其最高位为1,1

50、,占据了符号位,以数据输出时为负数,以字符输出时是对应的字符,占据了符号位,以数据输出时为负数,以字符输出时是对应的字符,占据了符号位,以数据输出时为负数,以字符输出时是对应的字符,占据了符号位,以数据输出时为负数,以字符输出时是对应的字符,以无符号数据输出时,也是其对应的数据。以无符号数据输出时,也是其对应的数据。以无符号数据输出时,也是其对应的数据。以无符号数据输出时,也是其对应的数据。第28页,本讲稿共72页例例例例3.7.23.7.2void main()void main()char c1=376;unsigned char c2=376;char c1=376;unsigned c

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

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁