C语言的数据类型.ppt
《C语言的数据类型.ppt》由会员分享,可在线阅读,更多相关《C语言的数据类型.ppt(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第2章章C语言的数据类型、运算符及其表达式语言的数据类型、运算符及其表达式第一节第一节C的数据类型及常量数据的数据类型及常量数据第二节第二节变量及其类型变量及其类型第三节第三节运算符和表达式运算符和表达式1/71C语言程序设计语言程序设计 龙昭华主编课件制作:刘达明课件制作:刘达明023-66834110第一节第一节C的数据类型及常量数据的数据类型及常量数据(第二章(第二章 C语言的数据类型、运算符及其表达式)语言的数据类型、运算符及其表达式)2/71由于“程序=算法+数据结构”,算法处理的对象是数据,而数据是以某种特定的形式存在的(如整数、实数、字符等)。不同的数据之间往往还存在某些联系(
2、如若干整数组成一个整数数组)。所谓数据结构数据结构指的是数据的组织形式,如数组就是一种数据结构。不同的计算机语言所允许定义和使用的数据结构是不同的,处理同一类问题如果数据结构不同,算法也会不同。因此考虑算法时,必须注意数据结构。一、一、C C的数据类型分类的数据类型分类空空类类型型(void)指针类型指针类型(*)数据类型数据类型基本类型基本类型整型整型(int)字符型字符型(char)枚枚 举举 类类 型型(新新 增增 加加 的的)(enum)实型实型(浮点型浮点型)双精度型双精度型(double)单单 精精 度度 型型(float)构造类型构造类型数组类型数组类型结结 构构 体体 类类 型
3、型(struct)共用体类型共用体类型(union)实际上,应当综合考虑算法和数据结构,选择最佳的数据结构和算法。C语言的数据结构数据结构是以数数据类型据类型形式出现的。C的数据类型分类如右边所示:课件制作:刘达明课件制作:刘达明023-66834110二、二、常量及其类型常量及其类型第一节第一节C的数据类型及常量数据的数据类型及常量数据3/71在程序运行过程中,其值不能被改变的量称为常量。常量。1 1、直接常量、直接常量常量一般从其字面形式即可判断,这种常量称为字面常量或直接常量。常量分为以下不同类型:、整型常量、整型常量 即整常数,它在C中有三种表示方法:十进制整数十进制整数:如:58、1
4、23、-456、0、-9等。它们是以非数字0开头,并由数字09组成,可以带正负号。八进制整数八进制整数:如:011、089、-0112、00、-09等。它们是以数字0开头,并由数字07组成,可以带正负号。十六进制整数十六进制整数:如:0 x123、0X119、0 x8f、-0 x1E、0 x0等。它们是以数字0和字母x联合组成的0 x或0X开头,并由数字09和字母AF(或af)组成,可以带正负号。注意:在整型常数后添加字母“L”或“l”,是长整型数,添加“u”则是无符号基本整型数。(第二章(第二章 C语言的数据类型、运算符及其表达式)语言的数据类型、运算符及其表达式)课件制作:刘达明课件制作:
5、刘达明023-66834110、实型常量实型常量第一节第一节C的数据类型及常量数据的数据类型及常量数据4/71 实型常量又称浮点数,它即数学里的实数,在C中有两种表示方法:十进制小数形式十进制小数形式:它由数字09和小数点组成(注意必须有小数点.),可以带正负号。如:.123、56.、89.0、-456.32、0.0、-.9、0.78、-0.99等。指数形式指数形式:也称科学表示法。如:123e3或123E3都代表123*10123*103 3。注意:字母e或E之前必须有数字,且字母e或E之后的指数必须是整数。一个实数可以有多种指数表示形式,如:123.456可以表示为123.456e0、12
6、.3456e1、1.23456e2、.123456e3、0.0123456e4等。我们把在字母e或E之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字的表示称为“规范化的指数形式”。如1.23456e2、-6.8e8、8.9e-2等。一个实数在用指数形式输出时,是按规范化的指数形式输出的。如:5689.65按指数形式输出的话,结果为5.68965e+003。注意注意:浮点常数只有一种进制(十进制);所有浮点常数都被默认为double型;实数常量后面跟一个f或F表示该常量为float型,或跟一个l或L表示该常量为long double型。如:8.9、8.9F、8.9L表示不同的数据类
7、型。(第二章(第二章 C语言的数据类型、运算符及其表达式)语言的数据类型、运算符及其表达式)课件制作:刘达明课件制作:刘达明023-66834110、字符型常量、字符型常量第一节第一节C的数据类型及常量数据的数据类型及常量数据5/71 C的字符型常量是用单引号单引号括起来的一个字符。(注意是单引号)如:A、a、D、*、$、0等。注意:A和a是两个不同的字符常量。除了以上形式的字符常量外,C语言还有一种特殊的字符常量转义字符。它以“”开头,使用时用一对单引号将其括起来。如n表示回车换行字符,即键盘上的“Enter”键。字符形式字符形式功能含义功能含义十六进制值十六进制值ASICII代码代码等效按
8、键等效按键n换行换行,将当前位置移到下一行开头,将当前位置移到下一行开头0 x0A10Ctrl+Jt横向跳格横向跳格(跳到下一个跳到下一个tab位置位置)0 x099Ctrl+Iv竖向跳格竖向跳格0 x0B11Ctrl+Kb退格,将当前位置移到前一列退格,将当前位置移到前一列0 x088Ctrl+Hr回车,将当前位置移到本行开头回车,将当前位置移到本行开头0 x0D13Ctrl+Mf走纸换页,将当前位置移到下页开头走纸换页,将当前位置移到下页开头0 x0C12Ctrl+L反斜杠反斜杠0 x5C92单引号字符单引号字符0 x2739?问号字符问号字符0 x3F63?”双引号字符双引号字符0 x2
9、234“a报警响铃报警响铃0 x077Ctrl+G0空空0 x000Ctrl+ddd13位八进制数所代表的字符位八进制数所代表的字符xhh12位十六进制数所代表的字符位十六进制数所代表的字符如:如:printf(“a=11n”);printf(“c=33”);输出结果为:输出结果为:a=11b=33如果不带如果不带n字符,字符,则输出:则输出:a=11c=338进制:进制:101表表A。16进制:进制:x41表表A。(第二章(第二章 C语言的数据类型、运算符及其表达式)语言的数据类型、运算符及其表达式)课件制作:刘达明课件制作:刘达明023-66834110、字符串常量、字符串常量第一节第一节
10、C的数据类型及常量数据的数据类型及常量数据6/71 字符串常量字符串常量是一对双引号“”括起来的字符序列。如:“how do you do!”、“a”、“123”。C规定:在每一个字符串的结尾加一个“字符串结束标志”(为字符0),以便系统据此判断字符串是否结束。0是一个ASCII码为0的字符,从ASCII代码表中可以看到ASCII码为0的字符是“空操作符”,即它不引起任何控制动作,也不是一个可显示字符。特别注意特别注意:用一对单引号括起来的是字符,它只占一个字节。而一对双引号“”括起来的是字符串,它占至少两个字节,在字符串结尾处有空字符0。在C语言中,没有专门的字符串变量,如果想将一个字符串存
11、放在变量中,必须使用字符型数组。a0字字 符符 串串”a”存储时占存储时占2个字节个字节a字字 符符a存储时占存储时占1个字节个字节c0字字符符串串”china”存储时占存储时占6个字节个字节hina(第二章(第二章 C语言的数据类型、运算符及其表达式)语言的数据类型、运算符及其表达式)课件制作:刘达明课件制作:刘达明023-668341102 2、符号常量、符号常量第一节第一节C的数据类型及常量数据的数据类型及常量数据7/71 符号常量是指用一个标识符代表的常量,即标识符形式的常量。定义符号常量的方法是用#define#define命令把一个常量名和常量联系起来,符号常量的使用给调试程序带来
12、很大的方便。符号常量的值在其作用域内不能改变,也不能重新赋值。如:#define N 5表示N代表常量5。习惯上,符号常量名用大写,变量名用小写,以示区别。使用符号常量有如下好处:第一,含义清楚。第二,在需要改变一个常量时能做到“一改全改”。(第二章(第二章 C语言的数据类型、运算符及其表达式)语言的数据类型、运算符及其表达式)课件制作:刘达明课件制作:刘达明023-66834110例例2.1:第一节第一节C的数据类型及常量数据的数据类型及常量数据8/71(第二章(第二章 C语言的数据类型、运算符及其表达式)语言的数据类型、运算符及其表达式)#include#define PRICE 30ma
13、in()int num,total;num=10;total=num*PRICE;printf(“total=%dn”,total);程序运行结果为:total=300#define命令出现在程序中函数的外面,其有效范围为定义命令之后有效范围为定义命令之后到文源文件结束到文源文件结束。通常,#define命令写在文件开头,函数之前作为文件一部分,其作用域为整个文件。如例2.1。当然也可以用#undef命令终止#define的作用域。如例2.2。例例 2.2 2.2:#include#define TEMP 100main()#undef TEMPf1()TEMP的作用域课件制作:刘达明课件制作
14、:刘达明023-66834110第第2章章C语言的数据类型、运算符及其表达式语言的数据类型、运算符及其表达式-习题习题19/71C语言程序设计语言程序设计 龙昭华主编习习题题(一一)*复习本章已讲内容,预习本章剩余内容。复习本章已讲内容,预习本章剩余内容。课件制作:刘达明课件制作:刘达明023-66834110第二节第二节变量及其类型变量及其类型10/71一、一、变量及其分类变量及其分类 1 1、变量的概念、变量的概念 变量变量是指在程序运行过程中,其值可以改变的量。变量具有三要素:变量变量名名、变量值变量值、变量地址变量地址(即变量存储单元的首地址)。即一个变量应该有一个名字,在内存中占据一
15、定的存储单元,在该存储单元中存放变量的值。(第二章(第二章 C语言的数据类型、运算符及其表达式)语言的数据类型、运算符及其表达式)变量名实际上是一个符号地址,在对程序编译时,由系统给每个变量名分配一个内存地址。在程序中从变量中读值,实际上是通过变量名找到相应的内存地址,从其存储单元中读取数据。变量要先定义后使用变量要先定义后使用。变量名变量名是标识符标识符(用来标识变量、符号常量、函数名、数组名、类型名、文件名等的有效字符序列)的一种,它是由字母、数字、下划线三种字符组成的,且第3a变量名变量名变量值变量值存储单元存储单元一个字符必须为字母或下划线,其长度不要超过8个字符(MSC)或32个字符
16、(TurboC)。为了通用,建议不要超过8个字符。对于一般用来表示整数变量和临时变量的单字符变量名,由于易与数字1和0混淆,而不使用字母l和o,单字符变量一般使用i、j、k、m、n。课件制作:刘达明课件制作:刘达明023-66834110变量值:变量值:第二节第二节变量及其类型变量及其类型11/71 变量是用来存放数据的,由于数据有不同的类型,因此要定义相应类型的变量来存放它。对某变量规定数据类型,实际上是对该变量内存中存放的二进制数值按照相应数据类型的规定进行相应的值解释而已。变量地址变量地址:在C程序编译时,会根据变量的数据类型为每个变量划出一定数目的存储单元存放变量的值,变量所占据的存储
17、单元的起始地址起始地址就是变量的地址。变量的地址表示为:&变量名D199920002001 例如:char a=D;则&a就是字符变量a的地址,如右图所示:字符变量a的地址为2000,字符变量a的值就存放在2000单元中。例如:int n=108;则&n就是整型变量n的地址,如右图所示:整型变量n的地址3002,但整型变量n的值就存储在存储单元3002和3003两个字节中。1083001300230033004例如:int a,b;scanf(“%d,%d”,&a,&b);(第二章(第二章 C语言的数据类型、运算符及其表达式)语言的数据类型、运算符及其表达式)课件制作:刘达明课件制作:刘达明0
18、23-668341102 2、变量的分类、变量的分类第二节第二节变量及其类型变量及其类型12/71根据所声明的位置不同根据所声明的位置不同,变量可分为局部变量局部变量、形式参数形式参数和全局变量全局变量。变量可以在程序中三个地方声明:函数内部、函数的参数定义中或所有的函数外部。根据变量存储类型根据变量存储类型,变量可分为自动变量自动变量(用auto声明)、静态变量静态变量(用static声明)、外部变量外部变量(用extern声明)和寄存器变量寄存器变量(用register声明)。声明变量时,如果不指定存储类型,则其缺省的存储类型为自动变量。因此,定义自动变量时不必使用auto声明。我们使用的
19、大多数变量都属于自动变量存储类型。根据数据类型根据数据类型,变量可分为整型变量整型变量(用int、long等声明)、实型变量实型变量(用float、double等声明)、字符型变量字符型变量(用char声明)、数组变量、指针型变量、结数组变量、指针型变量、结构体变量构体变量(用struct声明)、共用体变量共用体变量(用union声明)、枚举类型变量枚举类型变量(用enum声明)。(第二章(第二章 C语言的数据类型、运算符及其表达式)语言的数据类型、运算符及其表达式)课件制作:刘达明课件制作:刘达明023-668341103 3、变量的声明和赋值、变量的声明和赋值第二节第二节变量及其类型变量及
20、其类型13/71变量的声明方法变量的声明方法:类型名;如:inti,j,k;chara,b,c;(第二章(第二章 C语言的数据类型、运算符及其表达式)语言的数据类型、运算符及其表达式)变量赋初值的方法变量赋初值的方法:如:inti=3,j;chara=A,c;j=10;c=9;注意:注意:在C语言中,要求对所有用到的变量做强制定义,也就是说“先定义,后使用”,这样做有如下好处:凡是未被事先定义的,不做变量名,保证程序中变量名不至于前后书写不一致。每一变量被指定为一确定类型,在编译时就能为其分配相应的存储单元。指定每一变量属于一个类型,这就便于在编译时,据此检查该变量所进行的运算是否合法。如:整
21、型变量a和b可以进行求余运算:a%b,得到 a/b 的余数。但如果将a和b指定为实型变量的话,则不允许进行“求余”运算。课件制作:刘达明课件制作:刘达明023-66834110二、二、基本数据类型变量基本数据类型变量第二节第二节变量及其类型变量及其类型14/71 1 1、整型变量、整型变量 整型变量在内存中的存放形式整型变量在内存中的存放形式 数据在内存中是以二进制二进制形式存放的。整型变量整型变量是用来存放整型数据整型数据的变量,而整型数据在计算机内存中以补码形式存放补码形式存放的。(一个正数的补码和其原码相同。而负数的补码是将该值的绝对值的二进制形式,按位取反再加1。)SfS1S2S3Sn
22、符号位符号位整数的数值部分整数的数值部分当符号位sf为0时,表示该数为正数;当sf为1时,表示该数为负数。例如:inti=10,j=-10;的存储方式见图a和图b。图a表示存放示意图,图b是数据在内存中的实际存放情况。整型数为16位二进制数。10ai0bi000000000001010-10aj1bj111111111110110(第二章(第二章 C语言的数据类型、运算符及其表达式)语言的数据类型、运算符及其表达式)课件制作:刘达明课件制作:刘达明023-66834110有符号整型数据和无符号整型数据的存储:有符号整型数据和无符号整型数据的存储:第二节第二节变量及其类型变量及其类型15/71
23、有符号整数的范围-3276832767-3276832767,无符号整数的范围065535065535。无符号整数使用unsigned修饰。在声明变量时,如果不指定unsigned或指定signed,则表示有符号型数据,符号位有效。如果指定unsigned,则表示无符号型数据,符号位为该数本身。(第二章(第二章 C语言的数据类型、运算符及其表达式)语言的数据类型、运算符及其表达式)032767有符号整型有符号整型变量变量a:111111111111111符号位符号位165535无符号整型无符号整型变量变量c:111111111111111代表数据代表数据的第一位的第一位1-1有符号整型有符号整
24、型变量变量b:111111111111111如:如:int a,b;int a,b;a=32767;a=32767;b=-1;b=-1;unsigned int c;unsigned int c;c=65535;课件制作:刘达明课件制作:刘达明023-66834110、整型变量的分类、整型变量的分类第二节第二节变量及其类型变量及其类型16/71 有符号整型变量有符号整型变量 基本型:一般占2个字节(16位),int 短整型:一般占2个字节(16位),short int 长整型:一般占4个字节(32位),long int 有符号整型变量使用signed修饰,但缺省的数据类型即表示有符号整型数据,
25、因此可以省略修饰符signed。无符号整型变量无符号整型变量 无符号基本型:一般占2个字节(16位),unsigned int 无符号短整型:一般占2个字节(16位),unsigned short int 无符号长整型:一般占4个字节(32位),unsigned long int(第二章(第二章 C语言的数据类型、运算符及其表达式)语言的数据类型、运算符及其表达式)课件制作:刘达明课件制作:刘达明023-66834110、整型变量长度、整型变量长度第二节第二节变量及其类型变量及其类型17/71 C标准没有具体规定整型变量各类型数据所占内存字节数,只要求long型数据长度不短于int型,shor
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 数据类型
限制150内