c语言课件第二章数据类型运算符与表达式.ppt
《c语言课件第二章数据类型运算符与表达式.ppt》由会员分享,可在线阅读,更多相关《c语言课件第二章数据类型运算符与表达式.ppt(69页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章第二章数据类型数据类型运算符和表达式运算符和表达式2.1 2.1 C C的数据的数据类类型型 能能被被计计算算机机处处理理的的信信息息称称为为数数据据(data)。在在计计算算机机科科学学领领域域中中,数数据据是是广广义义的的。数数值值、字字符符、文文字字、表表格格、图图形形和和图图像、声音等都是数据。像、声音等都是数据。程序、算法处理的对象是数据。程序、算法处理的对象是数据。C C语语言言中中数数据据是是有有类类型型的的,数数据据的的类类型型简简称称数数据据类类型型。在在C语语言言中中讨讨论论数数据据,总总是是把把数数据据的的表表示示、数数据据值值和和数数据据类类型型作作为一个整体考察
2、。为一个整体考察。第二章第二章数据类型数据类型运算符和表达式运算符和表达式2.1 2.1 C C的数据的数据类类型型 2.1 2.1 C C的数据的数据类类型型注意注意:1 1、不同数据类型有不同的取值范围、不同数据类型有不同的取值范围P43(P43(表表3-1),3-1),p46(p46(表表3-2)3-2)。2 2、不同的编译系统,数据分配字节不同。例如、不同的编译系统,数据分配字节不同。例如TC P43(TC P43(表表3-1)3-1)中中int int 型数据分配型数据分配2 2个字节(个字节(1616位),而位),而VC+6.0VC+6.0中中intint型数据分配型数据分配4 4
3、个字节个字节(3232位)。位)。3 3、不同的数据类型有不同的操作。、不同的数据类型有不同的操作。如整型数可以取余操作,如整型数可以取余操作,实实型数型数据却不行;整型、据却不行;整型、实实型数据可以有加法,字符数型数据可以有加法,字符数组组不行。不行。4 4、不同的数据类型即使有相同的操作有时含义也不同,如指针数、不同的数据类型即使有相同的操作有时含义也不同,如指针数据自增据自增1 1与整数自增与整数自增1 1含义是不同的。含义是不同的。2.1 2.1 C C的数据的数据类类型型注意注意:5 5、不同的数据类型对计算机可能出现的错误不同。如整型数的、不同的数据类型对计算机可能出现的错误不同
4、。如整型数的溢出错误,浮点数的精度的丢失(有效数字位数不够)。溢出错误,浮点数的精度的丢失(有效数字位数不够)。6 6、C C语言的数据类型可以构造复杂的数据结构。如使用结构体数语言的数据类型可以构造复杂的数据结构。如使用结构体数组可以构造线性表。使用指针类型、结构体类型可以构造线性链组可以构造线性表。使用指针类型、结构体类型可以构造线性链表(栈、队列)、树、图。(在数据结构课程介绍)表(栈、队列)、树、图。(在数据结构课程介绍)2.2常量与变量常量与变量2 2、2 2、1 1 常量常量:在程序的运行过程中,其值不能改变的量称为常量。它相:在程序的运行过程中,其值不能改变的量称为常量。它相当于
5、数学中的常数。当于数学中的常数。在在C语言中,常量可以分为语言中,常量可以分为一般常量一般常量和和符号常量符号常量两类。两类。1.常量的使用(一):常量的使用(一):2 2、2 2、1 1 常量:常量:2.常量的使用(二)常量的使用(二)符号常量的使用:符号常量的使用:#define PI 3.1416#include void main()float s,l;s=10*10*PI;l=2*PI*10;printf(“s=%fn,l=%fn,s,l);printf(“PI=%fn,PI)PI也是一个常量,称为符号常也是一个常量,称为符号常量,它由量,它由#define命令定义,命令定义,代表代
6、表3.1416。该程序在编译之。该程序在编译之前,会自动将程序中所有的前,会自动将程序中所有的PI替换成替换成3.1416。这样程序将等。这样程序将等价于后面(三)的程序。价于后面(三)的程序。2 2、2 2、1 1 常量:常量:3.常量的使用(三):常量的使用(三):#include void main()float s,l;s=10*10*3.1416;l=2*3.1416*10;printf(“s=%fn,l=%fn,s,l);printf(“PI=%fn,3.1416)由于替换命令都是由于替换命令都是在编译之前进行的,所在编译之前进行的,所以类似于以类似于#define 这样这样的命令
7、被称之为的命令被称之为预处理预处理命令命令。(例如。(例如#include)预处理命令的命令行)预处理命令的命令行一般都是放在源程序中一般都是放在源程序中最前面的说明部分。最前面的说明部分。2 2、2 2、1 1 常量:常量:使用符号常量的好处:(使用符号常量的好处:(1)含义清楚、见名知意。)含义清楚、见名知意。(2)修改方便、一改全改)修改方便、一改全改。思考:同是常量,符号常量在程序设计中有什么优势?思考:同是常量,符号常量在程序设计中有什么优势?2 2、2 2、2 2 变量变量 在程序的运行过程中,其值可以改变的量称在程序的运行过程中,其值可以改变的量称为为变量变量。1、变变量量名名(
8、用用标标识识符符表表示示)、变变量量在在内内存存中中占占据据的的存存储储单单元元、变变量量值三者关系。值三者关系。变变量量名名在在程程序序运运行行过过程程中中不不会会改改变变,变变量量的的值值可可以以改改变变。变变量量名遵守标识符准则名遵守标识符准则。2 2、2 2、2 2 变量变量2、变量的定义格式:变量的定义格式:变量类型变量类型变量名;变量名;intnum;2 2、2 2、2 2 变量变量3、变量的特性变量的特性2 2、2 2、2 2 变量变量4、变量:变量:“先定义,后使用先定义,后使用”。1)只只有有定定义义过过的的变变量量才才可可以以在在程程序序中中使使用用,这这使使得得变变量量名
9、名的的拼拼写错误容易发现。写错误容易发现。2)定定义义过过的的变变量量属属于于确确定定的的类类型型,编编译译系系统统可可方方便便地地检检查查变变量量所进行运算的合法性。所进行运算的合法性。3 3)在编译时根据变量类型可以为变量确定存储空间,)在编译时根据变量类型可以为变量确定存储空间,“先定先定义后使用义后使用”使程序效率高。使程序效率高。2 2、2 2、2 2 变量变量例(例(200903)12.若函数中有定义语句若函数中有定义语句:intk;,则则A)系统将自动给系统将自动给k赋初值赋初值0B)这是这是k中的值无定义中的值无定义C)系统将自动给系统将自动给k赋初值赋初值-1D)这时这时k中
10、无任何值中无任何值2、3 整型数据整型数据整型常量的表示方法整型常量的表示方法1)十进制。例如)十进制。例如123,-456,0。2)八进制。以)八进制。以0开头,后面跟几位的数字(开头,后面跟几位的数字(0-7)。)。例如:例如:0123=(123)8=(83)10;-011=(-11)8=(-9)10。3)十六进制。以)十六进制。以0 x开头,后面跟几位的数字(开头,后面跟几位的数字(0-9,A-F)。)。注意:注意:AF(af)是不区分大小写的。是不区分大小写的。例如:例如:0 x123=291,-0 x12=-18,0 xF=15。整型常整型常量量的表示方法的表示方法4)整整型型常常量
11、量的的类类型型(整整型型常常数数的的后后缀缀,在在整整型型变变量量部部分分介介绍绍,这这里只要知道怎么表示)。里只要知道怎么表示)。整型常量后缀可以用:整型常量后缀可以用:u或或U明确说明为无符号整型数明确说明为无符号整型数l或或L明确说明为长整型数明确说明为长整型数.例如:例如:123L,123ul,123u,123UL整型常量的表示方法整型常量的表示方法1 1、以下选项中可作为、以下选项中可作为C C语言合法整数的是语言合法整数的是A A)10110B B10110B B)0386 0386 C C)0Xffa0Xffa D D)x2a2x2a22 2、与十六进制数与十六进制数200200
12、等值得十进制数为()等值得十进制数为()A)256A)256B)512B)512C)1024C)1024D)2048D)20482.3.2整型变量整型变量1、整型数据在内存中的存放形式、整型数据在内存中的存放形式数据在内存中以二进制形式存放,事实上以补码形式存放。数据在内存中以二进制形式存放,事实上以补码形式存放。例如:定义一个整型变量例如:定义一个整型变量i=10,补充知识(参考计算机文化基础等课程):补充知识(参考计算机文化基础等课程):1)带符号数的表示,原码、反码、补码。)带符号数的表示,原码、反码、补码。2)原原码码-补补码码相相互互转转化化。正正数数的的补补码码与与其其原原码码相相
13、同同,负负数数的的补补码码是是其其对对应应的的绝对值的原码数值位按位取反绝对值的原码数值位按位取反+1。2.3.2整型变量整型变量例题:例题:10,-10的计算机机内表示。的计算机机内表示。思思路路:先先将将数数值值表表示示为为二二进进制制形形式式(十十进进制制=二二进进制制,除除2取取余余),即获得数值的原码。将原码转化为补码,就是机内表示。,即获得数值的原码。将原码转化为补码,就是机内表示。10=(1010)2=(0000,0000,0000,1010)原原=(0000,0000,0000,1010)补。补。-10=(-1010)2=(1000,0000,0000,1010)原原=(111
14、1,1111,1111,0110)补。补。从从10,-10的的计计算算机机机机内内表表示示可可以以看看出出正正数数、负负数数机机内内表表示示(补补码码表表示)看上去明显不同。示)看上去明显不同。2.3.2整型变量整型变量2、整型变量的分类、整型变量的分类整整型型变变量量的的基基本本类类型型为为int。通通过过加加上上修修饰饰符符,可可定定义义更更多多的的整整数数据类型。数数据类型。归纳起来可以用归纳起来可以用6种整型变量种整型变量:l有符号基本整型有符号基本整型:signedintl有符号短整型有符号短整型:signedshortintl有符号长整型有符号长整型:signedlongintl无
15、符号基本整型无符号基本整型:unsignedintl无符号短整型无符号短整型:unsignedshortintl无符号长整型无符号长整型:unsignedlongint2.3.2整型变量整型变量2、整型变量的分类、整型变量的分类1)根根据据表表达达范范围围可可以以分分为为:基基本本整整型型(int)、短短整整型型(short)、长长整整型型(long)。用用long型型可可以以获获得得大大范范围围的的整整数数,但但同同时时会会降降低低运运算速度。算速度。2)根根据据是是否否有有符符号号可可以以分分为为:有有符符号号(signed,默默认认),无无符符号号(unsigned)-目的:扩大表示范围
16、,有些情况只需要用正整数。目的:扩大表示范围,有些情况只需要用正整数。有有符符号号整整型型数数的的存存储储单单元元的的最最高高位位是是符符号号位位(0:正正、1:负负),其其余余为为数数值值位位。无无符符号号整整型型数数的的存存储储单单元元的的全全部部二二进进制制位位用用于于存存放放数数值本身而不包含符号。值本身而不包含符号。C标标准准没没有有具具体体规规定定上上面面数数据据类类型型所所占占用用的的字字节节数数,只只要要求求long型型数数据据长长度度不不短短于于int型型,short型型不不长长于于int型型。具具体体如如何何实实现现,由由各各计计算算机机系系统统自自行行决决定定。如如微微机
17、机上上short,int都都是是16位位,而而long是是32位;位;VAX750机,机,int,long都是都是32位,而位,而short是是16位。位。2.3.2整型变量整型变量2、整型变量的分类、整型变量的分类(p43表表3.1)2.3.2整型变量整型变量2、整型变量的分类、整型变量的分类例子:保存整数例子:保存整数1313的各种整型数据类型。的各种整型数据类型。2.3.2整型变量整型变量3、整型变量的定义、整型变量的定义格式:变量类型格式:变量类型 变量名变量名 表表;例如:例如:#includevoidmain()inta,b,c,d;unsignedu;a=12;b=-24;u=1
18、0;c=a+u;d=b+u;printf(“a+u=%d,b+u=%dn”,c,d);结果结果:a+u=22,b+u=-142.3.2整型变量整型变量3、整型变量的定义、整型变量的定义说明:说明:(1)(1)变变量定量定义时义时,可以,可以说说明多个相同明多个相同类类型的型的变变量。各个量。各个变变量量用用“,”分隔。分隔。类类型型说说明与明与变变量名之量名之间间至少有一个空格至少有一个空格间间隔。隔。(2 2)最后一个变量名之后必须用)最后一个变量名之后必须用“;”结尾。结尾。(3 3)变量必须先定义后使用。)变量必须先定义后使用。(4)(4)也可以在定也可以在定义变义变量的同量的同时时,对
19、变对变量量进进行初始化。行初始化。2.3.2整型变量整型变量3、整型变量的定义、整型变量的定义例例2-2:变变量初始化量初始化#includevoidmain()inta=3,b=5;printf(a+b=%dn,a+b);2.3.2整型变量整型变量4、整型数据的溢出整型数据的溢出 整整型型数数最最大大允允许许值值+1+1,最最小小允允许许值值-1-1,会会出出现现什什么么情情况况?例如:例如:32767+1=-3276832767+1=-32768;-32768-1=32767-32768-1=32767。例例2-2a:整型数据的溢出整型数据的溢出#includevoidmain()inta
20、,b;a=32767;b=a+1;printf(na=%d,a+1=%dn,a,b);a=-32768;b=a-1;printf(na=%d,a-1=%dn,a,b);结果:结果:a=32767,a+1=-32768a=-32768,a-1=32767超出范围就发生超出范围就发生超出范围就发生超出范围就发生“溢出溢出溢出溢出”,运行时不报错,运行时不报错,运行时不报错,运行时不报错。2.4 2.4 实型(浮点型)数据实型(浮点型)数据2、4、1实型常量的表示方法实型常量的表示方法实数(浮点数)有两种表示形式实数(浮点数)有两种表示形式:1 1、十进制小数形式。由数字,小数点组成(必须有小数点)
21、。、十进制小数形式。由数字,小数点组成(必须有小数点)。例如:例如:.123.123、123.123.、123.0123.0、0.00.0 2 2、指数形式。格式:指数形式。格式:aEnaEn。例如:例如:123123e3e3、123E3123E3都是实数的合法表示。都是实数的合法表示。2、4、1实型常量的表示方法实型常量的表示方法指数形式指数形式注意:注意:1)字母)字母e(或或E)前面必须有数字,后面必须为整数。前面必须有数字,后面必须为整数。例如:例如:e3、2.1e3.5、.e3、e都不是合法的指数形式。都不是合法的指数形式。2)规规范范化化的的指指数数形形式式。在在字字母母e或或E之
22、之前前的的小小数数部部分分,小小数数点点左左边边应应当当有有且且只只能能有有一一位位非非0数数字字。用用指指数数形形式式输输出出时时,是是按按规规范范化化的的指数形式输出的。指数形式输出的。例如:例如:2.3478e2、3.0999E5、6.46832e12都属于规范化的指数形式。都属于规范化的指数形式。3)实实型型常常量量都都是是双双精精度度,如如果果要要指指定定它它为为单单精精度度,可可以以加加后后缀缀f(实型数据类型参看实型变量部分说明)。实型数据类型参看实型变量部分说明)。2、4、1实型常量的表示方法实型常量的表示方法1 1、以下符合以下符合C C语言语法的实型常量是()语言语法的实型
23、常量是()A)1.2E0.5B)3.14.159EA)1.2E0.5B)3.14.159EC)C).5E-.5E-3D)E153D)E15(13).一下选项中一下选项中,能用作数据常量的是能用作数据常量的是(200903)A)o115B)0118D)115L2、4、2实型变量实型变量1.1.实型数据在内存中的存放形式实型数据在内存中的存放形式 一个实型数据一般在内存中占一个实型数据一般在内存中占4 4个字节(个字节(3232位)。与整数存储位)。与整数存储方式不同,实型数据是按照指数形式存储的。系统将实型数据分为方式不同,实型数据是按照指数形式存储的。系统将实型数据分为小数部分和指数部分,分别
24、存放。小数部分和指数部分,分别存放。实型数据存放的示意实型数据存放的示意图图 :标标准准C没没有有规规定定用用多多少少位位表表示示小小数数,多多少少位位表表示示指指数数部部分分,由由C编编译译系系统统自自定定。例例如如,很很多多编编译译系系统统以以24位位表表示示小小数数部部分分(包包括括符符号号),8位位表表示示指指数数部部分分(包包括括指指数数的的符符号号)。小小数数部部分分占占的的位位数数多多,实实型型数数据据的的有有效效数数字字多多,精精度度高;指数部分占的位数多,则表示的数值范围大。高;指数部分占的位数多,则表示的数值范围大。2 2、实型变量的分类、实型变量的分类 实实型型变变量量分
25、分为为:单单精精度度(float)float)、双双精精度度(double)double)、长长双双精精度度(long double)long double)。ANSI CANSI C没有规定每种数据类型的长度、精度和数值范围。下表列出没有规定每种数据类型的长度、精度和数值范围。下表列出微机上常用的微机上常用的C C编译系统的情况。编译系统的情况。对于每一个实型变量也都应该先定义后使用。如对于每一个实型变量也都应该先定义后使用。如:类型类型比特数比特数有效数字有效数字数值范围数值范围float326-7-3.4x10+383.4x10+38double6415-16-1.7x10+3081.7
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课件 第二 数据类型 运算 表达式
限制150内