C语言第2章基本数据类型.ppt
《C语言第2章基本数据类型.ppt》由会员分享,可在线阅读,更多相关《C语言第2章基本数据类型.ppt(99页珍藏版)》请在三一办公上搜索。
1、第二章基本数据类型,兰州理工大学,第二章 基本数据类型,2.1 数据类型2.2 保留字、标识符2.3 基本数据类型2.4 运算符与表达式2.5 类型之间的关系2.6 位运算2.7 数组和指针2.8 简单应用程序举例,2.1 数据类型,2.1 数据类型,不同类型的数据代表不同的:数据表示形式;合法的取值范围;占用内存空间大小;可参与的运算种类。“先声明、后使用”原则:即使用一个数据前必须先声明其类型,使编译器生成目标代码时知道需要分配多大的存储空间及如何引用它。一些数据类型之间有密切的关系,称为相容,一些数据类型之间还可以进行(自动的或强制的)类型转换。,2.1 数据类型,单精度实型(float
2、),双精度实型(double),整型(int),字符型(char),枚举类型,数组类型,结构体类型,共用体类型,实型,基本类型,构造类型,空类型(void),指针类型,数据类型,2.2 保留字、标识符,2.2.1 单词,组成语言程序的最小词法单位是单词(Token),即单词是语言中具有独立意义、不可拆分的最基本单位。语言程序中有以下几种单词:,2.2.1 单词,保留字(Reserved Word),亦称关键字(Key Word)C语言中预先规定的具有固定含义的一些单词如:数据类型修饰符int,控制语句return等。标识符(Identifier):即名字系统预定义标识符,main,printf
3、 等;用户自定义标识符,Add,x,y 等。运算符(Operator):34种;分隔符(Separator):空格、回车/换行、逗号等 其它符号:大花括号“”用于标识函数体或语句块,“/*/”是程序注释所需的定界符;数据(Data)变量(Variable)常量(Constant),2.2.2 标识符,由字母或下划线开头的字母、数字和下划线组成的字串;用以命名常量及变量名、函数名、自定义类型名、语句标号等;大小写敏感:count、COUNT和Count被认为是三个不同的标识符。以下标识符是非法的:3s 以数字开头 s*T 出现非法字符*-3x 以减号开头 bowy-1 出现非法字符-(减号),2
4、.2.3 保留字,保留字或关键字:预先规定的具有固定含义的一些单词。关键字都是小写的,不同编译器可能略有不同。Turbo C扩充了11个关键字:asm、_cs、_ds、_es、_ss、cdecl、far huge interrupt near pascal以下7个用在预处理命令中的标识符,也看作是关键字:define,include,undef,ifdef,ifndef,endif,line,2.2.4 选择合适的标识符,不允许使用关键字作为标识符:int,float,for,while,if等不可以是数字开头;命名应直观,见名知意,便于记忆和阅读最好使用英文单词或其组合下划线和大小写通常用来
5、增强可读性variablenamevariable_nameVariableName可以为任意长度,但一般只识别前31个字符;某些功能的变量采用习惯命名如:for语句所采用的循环变量习惯用i,j,k,Windows 风格,UNIX 风格,2.2.5 常量与变量,在程序的执行过程中:值不能被改变的量称为常量(Constant)。值可以改变的量称为变量(Variable)。无论是常量还是变量,都有其类型,并且根据所属类型具有其可进行的运算。,2.2.5 常量与变量,1常量和符号常量常量根据书写形式(语法形式)决定其类型(即常量可以不经说明而直接引用)。如:800、1500是整数类型,800.00、
6、3.14159是浮点类型,a、b是字符类型。符号常量是用标识符(或宏替换名)表示的特殊的常量。如:圆周率可表示为:const/*float*/pi=3.14;#define PI 3.14如果要提高精度,只要修改pi(PI)的初始值就可以了(如将3.14改成3.1415926)。好处:含义清楚;“一改全改”。,2.2.5 常量与变量,2变量变量有四个部分组成:变量名、数据类型、内存地址、变量的值。变量用标识符命名,它对应着内存中的某个存储区域,该区域的位置由内存地址指明,区域中可存放数据。通过变量的名字访问存放在这个存储区域中的数值。“先声明、后使用”原则:“声明”即对程序中所用的变量类型必须
7、由程序员进行显式声明。声明方式:type 变量表;例:int a=2;int I,j,k;float b=1.0e-5;char c=n;,type可以是:int、float、double、char等。,变量表可以是:一个或多个同类型变量;其中可以赋值。一行可有多个语句;,2.2.5 常量与变量,2变量声明变量的语句称为声明语句或变量声明语句。声明变量告诉编译器变量的名字及其类型,以便编译器给变量分配相应的存储空间,并不执行。变量的值主要通过赋值(Assignment)运算改变:赋值运算由赋值运算符“=”将赋值表达式分为左、右两边,左边一般是变量名(不能是常量),称为左值;右边是一个可以具体计
8、算的表达式,称为右值。赋值语句将右值求出并放入左值的存储区域中。例:int i;i=3*8;,2.2.5 常量与变量,2变量例:int a=3;,a,2000H,2001H,变量名,内存地址,变量的值,两个字节,整形数,低字节在前,高字节在后,将变量名映射到内存地址(即将a映射为2000H),2.3 基本数据类型,2.3 基本数据类型,语言提供5种基本数据类型:,基本数据类型,整型 int,浮点(实)型 float,字符型 char,双精度(实)型 double,基本整型,长整型,短整型,无符号整型,空值型 void(无值型),2.3 基本数据类型,除了基本类型外,语言还提供:构造类型,包括:
9、数组、结构(体)、联合(共用体)、位域。枚举类型;指针类型。此外,C语言还允许用户使用typedef关键字产生自定义类型。,2.3 基本数据类型,不同类型数据的存储方式和取值范围与计算机硬件(主要是字长)结构密切相关。,2.3 基本数据类型,除空值类型外,其余四种基本类型前面还可加上类型修饰符,用于改变基本数据类型的含义。类型修饰符有两对:signed(有符号)和unsigned(无符号)、short(短)和long(长)。这两对修饰符可同时用于修饰基本数据类型,但同一对中只允许出现一个修饰符。,2.3 基本数据类型,表2.2列出了基本数据类型和类型修饰符的所有组合方式。,2.2.3 保留字,
10、例:#include main()printf(Data type Number of bytesn);printf(-n);printf(char%dn,sizeof(char);printf(int%dn,sizeof(int);printf(short int%dn,sizeof(short);printf(long int%dn,sizeof(long);printf(float%dn,sizeof(float);printf(double%dn,sizeof(double);printf(long double%dn,sizeof(long double);,2.3.1 数据的内部表
11、示,在语言中:整型数一般采用补码形式表示,实数采用浮点小数表示。例1:int i=-10;求-10的补码:10的原码:取反:再加1,得-10的补码:整数有三种:位的字符整数;16位的整数(短整数);32位的长整数。,2.3.1 数据的内部表示,有三种不同尺寸的浮点类型:字节(单精度)浮点数、字节双精度数10字节长双精度数。都使用四部分位组来确定所表示的数值 数符和阶符各占一位,阶码的位数决定了数据的大小范围,尾数的位数规定该数据有效位长度。,2.3.2 字符类型,字符类型的数据在内部存储的是该字符的ASCII码,即存储的是一个整型数值。字符类型包括:字符常量;字符变量。,2.3.2 字符类型,
12、1.字符常量括在单引号中的字符称为字符常量。如:A、9、(空格)、_(下划线)等。字母的大、小写是不同的,即A和a 不同。单引号左右两边的单引号是相同的(分号右边的键)。转义字符:意即转变其他字符的含义来表示特殊字符。转义字符也由单引号括住,以反斜线“”开头。,2.3.2 字符类型,2.字符变量类型声明:char choice;声明的同时可以赋值:char choice=Y;以下三条声明语句都与上一条语句等价:char choice=131;/八进制char choice=x59;/十六进制char choice=89;/十进制一次可以声明多个变量,例如:unsigned char sel1,
13、sel2;,2.3.2 字符类型,【例2.1】字符变量声明和赋值举例。/*character example_1*/main()char c1=89,c2,c3,t=t;c2=130;c3=x5a;printf(%o%c%x%c%d%c%cn,c1,t,c1,t,c1,t,c1);printf(%ot%xt%dt%cn,c2,c2,c2,c2);printf(%ot%xt%dt%cn,c3,c3,c3,c3);,2.3.3 整数类型,1.整数常量整数常量支持三种数制:十进制、八进制和十六进制。【例2.2】同一整数数值的3种表示(输入)方法:十进制 八进制 十六进制 0 0 0 x0 7 07
14、0 x7 9 011 0 x09 83 0123 0 x53 123 0173 0 x7B 123与0123表示的是不同的数值。,2.3.3 整数类型,1.整数常量整数常量(不加说明时)的类型由整数值所属的范围决定,编译其会将其类型解释为能存储该数的最小类型。例如:123是有符号整数类型,50000可解释为无符号整数类型,而5500000则应解释为有符号长整数类型。整数常量后可加后缀,以显式指明其类型,后缀有两种:u|U 无符号后缀 l|L 长后缀例如:023,234l,33u,0 x24,25,067,0 xa9,10L 都是C语言允许的整型常量。,2.3.3 整数类型,2.整数变量声明 类
15、型修饰符 int 变量表;例如:int age,work_years;/两个整型变量long int population;/长整型变量short days=7;/短整型变量并赋初值为7,2.3.3 整数类型,【例2.3】整型变量的定义和赋值举例/*integer number example*/main()int x,y,z,t;x=32768u;y=011L;z=0 x23;t=t;printf(%o%c%x%c%u%c%dn,x,t,x,t,x,t,x);printf(%o%c%x%c%u%c%dn,y,t,y,t,y,t,y);printf(%o%c%x%c%u%c%dn,z,t,z,
16、t,z,t,z);,2.3.4 浮点类型和双精度类型,1.浮点(实型)常量普通十进制数,例如:3.14159+33.3-4.275 2.025-.5 科学记数法,例如:9.10956E-28 18E10 2e-5-27e4浮点常量不加说明时其类型为双精度类型,占8个字节。浮点常量也可加后缀,后缀有两种:f|F浮点后缀 l|L 长后缀下列都是C允许的浮点常量,如:-0.003,3e+5,.234e-2,3.14L,6.78f等。,2.3.4 浮点类型和双精度类型,2.浮点变量与双精度变量 声明 类型修饰符 float 变量表;类型修饰符 double 变量表;例如:float balance;/
17、浮点变量double weight=0;/双精度变量并赋初值0 long double distance;/长双精度变量,2.3.4 浮点类型和双精度类型,【例2.4】实型变量的声明和打印举例/*float number example*/main()float x,y,z;x=100l;y=2.3456f;z=88.9L;printf(%5.1f n,x);printf(%5.1f n,y);printf(%5.1f n,z);printf(“%dn”,sizeof 88.9L);/*88.9L的字节数*/printf(%dn,sizeof(2.3f);/*2.3f的字节数*/printf(
18、%dn,sizeof(y);/*y的字节数*/,2.3.5 字符串常量,字符串常量是括在双引号内的字符序列。字符串中可以包含空格、转义字符以及中文。如:This is a string constant.His name is John.n注意:x07n张三正在开会。n要注意字符串中转义字符的用法,例如:Hi,x7come on.被解释为:Hi,|ome on.字符串中的字符个数称为字符串的长度(转义字符只当作一个字符计算)。字符串存储时,除串中的字符外,还在最后接一个0 字符(空字符)表示串的结束,所以长度为n的字符串需要n1个字节来存储。“A”与A不同,前者是字符串常量,占两个字节;后者是
19、字符常量,占一个字节。语言用数组存放字符串,故字符数组与字符串等价。,2.3.6 符号常量,采用存取修饰符const声明符号常量,称为const常量。声明语句中需对符号常量初始化。如:const float pi=3.14159;const int model=486;,2.4 运算符与表达式,2.4 运算符与表达式,数据类型不仅限定了常量与变量的存储方式、取值范围,还约束了数据可进行的操作。对常量与变量进行加工的过程称为运算。表示各种不同运算的符号称为运算符。参与运算的数据称为操作数。程序的基本运算主要由表达式完成,既灵活又复杂。,2.4 运算符与表达式,语言的基本运算包括:算术运算、关系运
20、算、逻辑运算、位运算、赋值运算逗号运算等。按操作数的个数,运算符可分为:一元(单目)运算符、二元(双目)运算符、三元(三目)运算符。,2.4.1 表达式,表达式(Expression)是由操作数和运算符按一定语法形式组成的符号序列。每个表达式经过运算(求值)后都会产生一个确定的值,称为表达式的值。表达式的值具有某种类型,即为表达式的类型(包括空值类型)。一个常量或变量是最简单的表达式,其值即是该常量或变量的值;表达式的值还可以用作其他运算的操作数;圆括号括住的表达式还是一个表达式,其值和类型与未加括号时相同。以下均是合法表达式:3.14、balance、2*r*pia*(b+c)+d,2.4.
21、1 表达式,C运算符,算术运算符:(+-*/%+-)关系运算符:(=!=)逻辑运算符:(!&|)位运算符:(|&)赋值运算符:(=及其扩展)条件运算符:(?:)逗号运算符:(,)指针运算符:(*&)求字节数:(sizeof)强制类型转换:(类型)分量运算符:(.-)下标运算符:()其 它:(()-),2.4.2 算术运算符及算术表达式,1算术运算符算术运算符有:+、-、*、/、%、+、-。其中:一元运算符:“-”,取操作数的相反数。二元运算符:+、-、*、/、%:“%”、“+”、“-”只可用于整数类型;其他运算符可用于整型、浮点型和双精度型。“/”:若两个操作数都是整型,即为整除。其结果舍弃小
22、数,取整。例如:15/3、16/3与17/3的求值结果均为5,而1/3和2/3的求值结果均为0。“%”:取模,即只取余数。例如:173的求值结果为2,28%5的求值结果为3。取模的结果不可能大于或等于第二个操作数。,2.4.2 算术运算符及算术表达式,1算术运算符“+”为自增运算符,“-”为自减运算符。可以前置也可以后置。如:a+(后置),或+a(前置);+在前则先加1,再参加运算;+在后则先参加运算,后加1。例:main()int a=3;int b=2;int c;c=a+*b;printf(%dn,c);a=3;b=2;c=+a*b;printf(%dn,c);,2.4.2 算术运算符及
23、算术表达式,1算术运算符不同的编译系统对printf函数的输出表列中的求值顺序不一定相同,可以从左到右,也可从右到左。main()int i=8;printf(%dn%dn%dn%dn%dn%dn,+i,-i,i+,i-,-i+,-i-);,Turbo C从右到左,?,VC+6的结果,2.4.2 算术运算符及算术表达式,2算术表达式有算术运算符参与运算的表达式称为算术表达式。参加算术表达式的操作数可以是字符类型、整数类型、浮点类型、双精度类型等多种,算术表达式的求值结果也可以是这些类型。例如:x*(y-z)(a-2)/(b+2)+50 均是算术表达式。,2.4.2 算术运算符及算术表达式,3重
24、要说明溢出:程序设计中,会产生各种运算溢出,均会产生一个错误的结果或导致程序终止(且因编译器而异)。例:main()int a,b;a=32767;b=a+1;printf(%d n%d,a,b);,2.4.2 算术运算符及算术表达式,3重要说明操作数的不同类型会使相同表达式的值产生不同的内部表示(也因编译器而异)。如:若x是短整数,x=3;表达式x/2,当x为有符号数时,结果为1,若x为无符号数,结果为32766。例:main()short int x=-3;printf(%dn,x/2);,main()unsigned int x=-3;printf(n%dn,x/2);,2.4.2 算术
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 基本 数据类型
链接地址:https://www.31ppt.com/p-6504226.html