收藏 分销(赏)

第2-讲-基本数据类型教学课件完整.pptx

上传人:二*** 文档编号:12675916 上传时间:2025-11-23 格式:PPTX 页数:37 大小:377.63KB 下载积分:5 金币
下载 相关 举报
第2-讲-基本数据类型教学课件完整.pptx_第1页
第1页 / 共37页
本文档共37页,全文阅读请下载到手机保存,查看更方便
资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,11/7/2009,#,C/C+程序设计,第2章基本数据类型,第2章,基本数据类型,Madebylut,C/C+程序设计,第2章基本数据类型,2.1,数据类型,短整型short,整型int,长整型long,整,型,数据类型总表,基本类型,单精度型float,实型,双精度型double,字符类型char,数组,结构体struct,共用体union,枚举类型enum,数据类型决定:,1.数据占内存字节数,2.数据取值范围,3.其上可进行的操作,C,数,据,类,型,构造类型,指针类型,空类型void,定义类型typedef,Madebylut,C/C+程序设计,第2章基本数据类型,基本数据类型,类型符号,关键字,所占位数,数的表示范围,(signed),int,(signed),short,(signed),long,unsignedint,unsignedshort,unsignedlong,16,16,32,16,16,32,32,64,8,8,-3276832767,-3276832767,-21474836482147483647,065535,065535,04294967295,3.4e-383.4e38,1.7e-3081.7e308,-128127,0255,有,整,型,无,实,型,字,符,型,有,有,有,无,float,double,char,unsignedchar,说明,:数据类型所占字节数随机器硬件不同而不同,上表以IBMPC机为例:,Madebylut,C/C+程序设计,第2章基本数据类型,常量与变量,语言中的数据可分为常量与变量两大类。在程序的执行过程中,,值不能被改变的量称为常量(constant)。在程序执行过程中,值,可以改变的量称为变量(variable)。无论是常量还是变量,都有,其类型,并且根据所属类型规定常量与变量可进行的运算。,1,常量和符号常量,常量的类型是根据数据的书写形式(即语法形式)来决定的。例如,800、1500是整数类型,800.00、3.14159是浮点类型,a、b,是字符类型。,有一种特殊的常量是用标识符表示的,称为符号常量。符号,常量常用于帮助记忆,提高程序的可读性和可维护性。例如程序,中要用到圆周率时,可以将圆周率表示为一个符号常量pi并将pi,的值设置为3.14,程序中每次使用圆周率时都用pi表示。如果要,提高精度,只要将pi的初始值作修改就可以了(如将3.14改成,3.1415926)。,Madebylut,C/C+程序设计,第2章基本数据类型,常量与变量,2变量及类型声明,变量是程序设计中的有力武器。变量有四个部分组成:变量名、数,据类型、内存地址、以及变量的值。变量用标识符来命名,它对应着,内存中的某个区域,该区域的位置由内存地址指明,区域中可存放数据。,我们在程序中通过变量来的名字访问存放在这个存储区域中的数值。,在程序中使用变量时必须遵循“先声明、后使用”的原则。变量的,类型是由程序员显式声明的,声明方式是类型后面列出变量的名字或逗,号分开的变量表:,这种声明变量的语句只是向编译程序声明一个变量的名字及其类型,,申请地址空间,并不真正地执行程序,这种语句称为声明语句或称为类,型定义语句。,例如:inti,j,k;,变量的值主要通过赋值(assignment)运算改变。变量名=e,右边是一,个可以具体计算出来的值,可以是常量、变量或由常量与变量经过若干,运算后得出的值,统称为表达式。,x=x+1;,另一个典型的赋值运算是利用变量temp交换变量x和y的值:,Madebylut,C/C+程序设计,第2章基本数据类型,2.3基本数据类型,2.3.1数据的内部表示,整数的内部表示,作为有符号数时,每一种整数的最高位作为符号位,作为无符号数时,每,一种整数的最高位是该数据数值表示的一部分(补码表示),。,整数最高位(n-1),最低位(0),有符号数的符号位,实数的内部表示,阶符,阶码,数符,尾数(定点小数),Madebylut,C/C+程序设计,第2章基本数据类型,2.3.2字符型数据,2.3.2.1字符型常量,字符常量:A、a、5、,字符串常量:“QuickC”、“ANSIC标准”,转义字符,:n、0、057,xfd,参见P.19表2.5,Madebylut,C/C+程序设计,第2章基本数据类型,语言预定义的转义字符,转义字符,ASCII码,含,义,a,0 x07,响铃符(BEL-Bell),n,t,v,b,r,f,?,“,ooo,xhh,0 x0A,0 x09,0 x0B,0 x08,0 x0D,0 x0C,0 x5C,0 x3F,换行符(LF-LineFeed),水平制表符(HT-HorizontalTable),垂直制表符(VT-VerticalTable),回退符(BS-Backspace),回车符(CR-CarriageReturn),换页符(FF-FormFeed),反斜线(),问号(?),0X27,0X22,单引号(),双引号(”“”),0 x00-0 xff八进制字符常数,0 x00-0 xff十六进制字符常数,Madebylut,C/C+程序设计,第2章基本数据类型,语言预定义的转义字符,字符常量的完整表示,字符,其中:引号内的字符有两类,可显示字符:,指的是ASCII码表中除单引号、反斜,线和换行以外的所有可见字符。,转义字符:,如前表2.5所列举的,。,例如:,a,n,t,234,x59,都是C语言允许的字符常量,。,Madebylut,C/C+程序设计,第2章基本数据类型,2.3.2.2字符变量,【例】,main(),charc1,c2;,c1=A;c2=B;,printf(“c1=%cc2=%cn”,c1,c2);,.字符量的存储,65,01000001,字符A字节,2.字符串的存储,字串“ANSIC”,0的ASCII码值为0,6578837332670,占7个字节,ANSIC,Madebylut,C/C+程序设计,第2章基本数据类型,3.定义,4.赋值,charc=0;,c=a;,c=“a”;错!,c=“IBM”;错!,5.运算,char型与int型通用与互换.,大小写转换,加密.,Madebylut,C/C+程序设计,第2章基本数据类型,2.3.3.2整型变量,.以int定义,2.可以加修饰前缀,在语言中,整型数据的内部表示一般采用补码形式。,整数有三种不同的尺寸:位的字符整数、16位的短整,数和32长整数。,3.举例,Madebylut,C/C+程序设计,第2章基本数据类型,2.3.4浮点类型数据,2.3.4.1浮点常量,小数形式,F|f,+整型后缀,指数形式,L|l,例:,2.3,-0.003,3e+5,.234e-2,3.14L,6.78f等都是C允许的浮点常量,。,Madebylut,C/C+程序设计,第2章基本数据类型,2.3.4.2,浮点类型,变量,.以float、double定义,2.可以加修饰前缀,long,3.举例,声明浮点变量或双精度变量分别用保留字float和double开头,可,以加入类型修饰符。例如:,flatbalance;,doubleweight=0;,longdoubledistance;,/声明了一个浮点变量balance,/声明了一个双精度变量weight并初始化为0,/声明了一个长双精度变量distance,根据表2.3,编译程序会为变量balance分配4个字节,为变量,weight分配8个字节,为变量distance分配10个字节。,Madebylut,C/C+程序设计,第2章基本数据类型,2.4运算符和表达式,2.4.1运算符,一元运算符,算术运算符,:,二元运算符,三元运算符(?:),+、-、*、/、%、+、-,关系运算符,:,逻辑运算符,:,赋值运算符,:,逗号运算符,:,位运算符,:,条件运算符,:,求字节运算符,=,?:,sizeof(),Madebylut,C/C+程序设计,第2章基本数据类型,2.4,运算符和表达式,关于算术运算符的几点说明:,1.%“取模(求余)”,2./当两个操作数都是整数时,表示“整除”,运算符只能用于整型,如:15/2=716/3=51/3=0,3.k-,k+-k+k,1)单独使用时,效果一样,2)作为运算元素和其它一起参加运算时,结果不一,k=3;+k;k+;,样例如:k=4;x=5;,+k+x=10,k+x=9,Madebylut,C/C+程序设计,第2章基本数据类型,2.4运算符和表达式,1.算术表达式,inta,b,c;a=10;b=20;c=a+b;,a=a+ba+=b;,a=a*ka*=k;,+=-=*=/=%=等等复合赋值语句,2.赋值表达式,x=5;a=(b=c);a=b=c;,a=(b=5)+(c=4);,3.关系表达式,xy+1a!=b+1x=0,关系运算的结果是整型,1表示真,0表示假,1327结果为013y)max=x;,elsemax=y;max=(ab)?a:b;(,例exif.c,),Madebylut,C/C+程序设计,第2章基本数据类型,2.4运算符和表达式,7.位运算符及位运算:,位运算符:,1)位求反(一元)2)&位与,3)|位或,5)右移,0 x5a&0 xb701011010,&10110111,00010010(0 x12),.,举例(exbit1.c,exlog.c,exl_mov.c,exr_mov.c),8.求字节运算符,sizeof(int)=2sizeof(float)=4sizeof(structstudent),Madebylut,C/C+程序设计,第2章基本数据类型,2.5优先级与结合性(P33),1.优先级,高,初等运算,单目运算,算术运算,关系运算,逻辑运算(除!外),条件运算,赋值运算,逗号运算,2.结合性,指运算数与运算符的结合方向.,单、三目及赋值运算,其余,自右向左结合,自左向右结合,Madebylut,C/C+程序设计,第2章基本数据类型,2.6类型转换,C允许不同类型的量混合运算。,2.6.1隐式,.低字长、低精度向长字长、高精度转换。,2.逐步进行。,高,Doublefloat,long,unsigned,低,intcharshort,赋值时以左边变量为准.,Madebylut,C/C+程序设计,第2章基本数据类型,2.6.2强制类型转换,格式:(类型名)表达式,例:prinf(“%f”,2/3);,prinf(“%f”,(float)2/3);,prinf(“%f”,(float)(2/3);,Madebylut,C/C+程序设计,第2章基本数据类型,2.7数组和指针,2.7.1数组,2.7.2指针,2.7.3指针的简单用法,Madebylut,C/C+程序设计,第2章基本数据类型,2.7.1数组,变量和常量只能用来表示少量相互之间没有内在联系的数,据,大量的成批数据要使用数组(array)来表示。数组是具有一,定顺序关系的若干变量的集合体。组成数组的变量称为数组的,元素,简称元素。C语言中数组的元素变量用数组名后面跟有,方括号“”的下标表示,如:,y234,这里:a,b,name,y是用户命名的数组名。只有一,个方括号的数组称为一维数组,带有两个、三个方括号的是二,维数组、三维数组。,a2,b23,name100,C语言数组的下标是从0开始,下标必须是整数型的常量和,变量。注:C不允许定义变长数组。,数组在内存中存储时,是按下标递增的顺序连续存储各数组元,素的值。数组名代表了数组所占有的这一片连续存储区域的首,地址。数组的首地址也就是数组第一个元素的地址。如上面的,数组名为a的数组首地址是a或&a0,数组名是一个常量地址,,不能对它赋值或进行&的运算,。,Madebylut,C/C+程序设计,第2章基本数据类型,由于数组是元素的集合体,是由若干个带有下标的变量所组,成的,所以数组也具有与其它变量相同的数据类型和存储类,别,因此数组在使用前必须对数组的类型、数组的存储进行,说明。说明的方式是,存储类别数据类型,数组名元素个数,若数组的存储类别是采用系统的默认值(自动存储类别),则,定义时可以省去该项的说明。编译系统在处理数组说明语句,时,为该数组在内存中分配一定数量的存储空间。,例如,有如下的数组说明:,inta100,num34;,static,charname200;,/static:静态存储类别,第一条说明语句中,定义了两个整型数组,其中一维a数组,数组,共用100个元素,即:a0,a1,a2,a99。二维num,有3行4列,共3*4=12个元素。存储类别采用隐含类别。num,数组的结构见图2.5。第二条语句定义了字符型的name数组,,有200个元素,并定义采用静态存储类别。,Madebylut,C/C+程序设计,第2章基本数据类型,2.7.2指针,指针也是一种变量,它和其他变量一样也具有三个,要素:指针的名字、指针的类型、指针的值。它也,需要占用存储空间。但它与其它普通变量有着不同,之处,指针的存储空间里存放的是另一个变量的地,址。而普通变量的存储空间里存放的该变量自己的,数值。指针的类型不是它自己的类型,而是它指向,的对象的数据类型。在C语言中,根据指针所指的,对象的不同,指针有不同的说明和使用形式。因此,分为指向一般变量的指针、指向数组的指针、指向,结构体的指针、指向函数的指针以及指向指针的指,针等。在第六章之前,我们只学习最简单最基本的,指向变量的和指向一维数组的指针。,Madebylut,C/C+程序设计,第2章基本数据类型,.指针的定义,,主要体现在要说明它是一个指针变,量,即在变量的名前加上“*”,这就使得指针变,量不同于其它变量;还要说明它将要指向的对象的,数据类型,(请注意指针本身是不具有什么类型的,,指针的类型是由系统定义的。)其定义方式是:,对象的类型,*指针变量名;,例如:,int,float*py;,char*pc;,*px;,在此定义了三个指针变量,一个指向整型变量的px指针变量,,一个指向实型变量的py指针变量,和一个指向字符型变量,的pc指针变量。,Madebylut,C/C+程序设计,第2章基本数据类型,.,指针指向某个对象,定义指针的目的是要让它与某个对象(变量)联系起来,即,让指针指向某个变量,又两中方式:,1.,用赋值语句通过给指针赋值使得指针指向某个变量,例如:,int*px,x;,float*py,y;,char*pc,c;,px=,py=,pc=,px,x,y,py,pc,c,赋值语句,这里px指针指向x,py指针指向y,pc指针指向c,Madebylut,C/C+程序设计,第2章基本数据类型,2.,用初始化的方式,让指针指向某个变量,我们知道,初始化是在说明变量的同时赋予的初始值,故,称为初始化。由于指针保存的是地址,因此初始化时赋予,的初始值必须是地址量。初始化的方式是:,对象的类型,*指针变量名=初始地址值;,如上面的表示可改为:,int,floaty,*py=,x,*px=,charc,*pc=,这样既完成了定义指针变量,同时也使得指针得到,了初始值即所指向的对象的地址。,Madebylut,C/C+程序设计,第2章基本数据类型,.指向一般变量的指针,对其定义及赋值操作在前面已又介绍,这里只通过例,子说明,:,main(),intx,y,*p1=,p2=p1;,x=100;,y=200;,printf(x=%dn,*p1);,printf(y=%dn,*p2);,P1,100,x,P2,200,y,程序中p2指针在初始化时是指向变量y的(如图的虚线箭头所,示),后来用赋值方式将p2的指向改为与指针p1同样的指向,,即都指向x,因此打印*p2值实际上是x的值。,Madebylut,C/C+程序设计,第2章基本数据类型,.,指向一维数组的指针,例如有如下定义:inta10,*p;,让指针变量p指向数组a(即p指向数组首地址)的方式为,:,p=a;或p=,例子:,main(),可用p+i指向第i个元素。,inti,a=10,20,30,40,50,*p;,p=a;,for(i=0;i5;i+),printf(a%d=%-6d,i,pi);,printf(n);,for(i=0;i5;i+),printf(*(p+%d)=%-4d,i,ai);,printf(n);,Madebylut,C/C+程序设计,第2章基本数据类型,程序输出结果是:,a0=10,a1=20,a2=30,a3=40,a4=50,*(p+0)=10*(p+1)=20*(p+2)=30*(p+3)=40,*(p+4)=50,这里可以看出,pi、ai、*(a+i)和*(p+i)也都是完,成同样的功能的。,需要特别指出的是,指针和数组在访问地址中的,数据时,其表示形式是相同的,因为指针和数组名,都是地址量,但是,指针和数组名在本质上是不同,的,指针是地址变量,而数组名则是地址常量。这,就意味着指针可以接受赋值,如:p=a;是合法的,,但数组名则不能被赋值,如果有a=p的赋值语句则是,错误的。,Madebylut,C/C+程序设计,第2章基本数据类型,2.8简单的应用程序,例题1:鸡兔同笼。,例题2:输入两个数,按大小输出,Madebylut,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 初中其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服