C语言第2章基本数据类型与表达式.ppt
《C语言第2章基本数据类型与表达式.ppt》由会员分享,可在线阅读,更多相关《C语言第2章基本数据类型与表达式.ppt(76页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言第二章C语言的基本数据类型与表达式 2.1 C语言字符集、标识符与关键字2.1.1 C语言字符集 C语言和其他语言一样,它的基本字符集包括语言和其他语言一样,它的基本字符集包括有英文字母、阿拉伯数字以及其他一些符号。有英文字母、阿拉伯数字以及其他一些符号。具体归纳如下:英文字母:大小写各26个,共计52个 阿拉伯数字:0到9,共计10个 下划线:_;其他特殊符号:主要指运算符,运算符通常由一至两个特殊符号组成。特殊符号集如下:+_*/%+-=!=!&|&()?:.,;2.1.2 标识符用户为程序中的变量、常量、数组、函数、文件用户为程序中的变量、常量、数组、函数、文件和类型等数据所起的名
2、字称为标识符。标识符是和类型等数据所起的名字称为标识符。标识符是字母、下划线和数字的排列,但必须用字母或下字母、下划线和数字的排列,但必须用字母或下划线划线“_”“_”开头。开头。大小写字母含义不同。如大小写字母含义不同。如countcount,CountCount,COUNTCOUNT是是三个不同的标识符。标识符不能和三个不同的标识符。标识符不能和C C语言的关键字语言的关键字相同,也不能和用户编制的函数或相同,也不能和用户编制的函数或C C语言库函数同语言库函数同名。名。Turbo C 2.0Turbo C 2.0对于标识符的规定最长可允许对于标识符的规定最长可允许3232个字个字符。符。
3、合法标识符:合法标识符:_22A,lea_1,avg3,day,ABCde43xyw8_22A,lea_1,avg3,day,ABCde43xyw8 不合法标识符:不合法标识符:M.J.YORK,$_238,#xy,a*b,8Tea M.J.YORK,$_238,#xy,a*b,8Tea2.1.3 关键字 关键字(又称保留字)是一种语言中规定具有特定含义的标识符。关键字(又称保留字)是一种语言中规定具有特定含义的标识符。C语言可使用以下语言可使用以下32个关键字:个关键字:autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfl
4、oatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile注:注:C语言的关键字都是小写的。语言的关键字都是小写的。2.2 C语言的基本数据类型C数据类型丰富,分为:基本类型构造类型指针类型空类型整型字符型实型单精度双精度数组结构体共用体数据有常量、变量之分,均为其中一种类型。枚举数据类型通常将数组类型、结构体类型、共用体类通常将数组类型、结构体类型、共用体类型和指针类型又统称为复杂类型型和指针类型又统称为复杂类型(有的教有的教材将枚举类型也归
5、为复杂类型材将枚举类型也归为复杂类型)。基本类型是复杂类型的元素类型。其前面基本类型是复杂类型的元素类型。其前面可以加各种修饰符,用来修改基本类型的可以加各种修饰符,用来修改基本类型的含义,以便更准确地适应各种情况的需求。含义,以便更准确地适应各种情况的需求。修饰符修饰符signedsigned,shortshort,longlong和和unsignedunsigned适用于字符和整数两种基本类型,而适用于字符和整数两种基本类型,而longlong还可用于还可用于doubledouble类型。表类型。表2.12.1列出列出C C所支持所支持的数据类型,表的数据类型,表2.22.2列出基本类型的
6、修饰列出基本类型的修饰符。符。表2.1 Turbo C所支持的基本数据类型 关关键键字字所占位数所占位数取取值值范范围围精度(位)精度(位)char8-127127signed char8-127127unsigned char80255int16-3276832767unsigned int16065535signed int16同同intunsigned short int16同同intsigned short int16同同short intlong int 32-21474836482147483647unsigned long int3204294967295float32-3.41
7、0-38+3.410387double64-1.710-308+3.41030815long double80-3.410-4932+3.4104932表2.2 基本数据类型的修饰符 修修饰饰符符含含义义signed带带符号符号修修饰饰符符unsigned无符号无符号修修饰饰符符long长长型修型修饰饰符符short短型修短型修饰饰符符2.2.2 整型变量整型变量一、分类:一、分类:分为四种:基本型、短整型、长整型、无符号型 2.短整型:用“short int”或“short”表示 3.长整型:用“long”或“long int”表示 1.基本型:用“int”表示 4.无符号型:无符号型:(修
8、饰符:修饰符:unsigned)不存放符号,则不带符号数不存放符号,则不带符号数.又分无符号整型,无符号短整型,无符号长整型。分别以分别以unsigned intunsigned int、unsigned shortunsigned short和和unsigned longunsigned long表示表示。整型数据有:十进制整数、八进制整数和十六进制三种形式。整型数据有:十进制整数、八进制整数和十六进制三种形式。(1)十进制整数的表示与数学上的表示相同,如:十进制整数的表示与数学上的表示相同,如:256,-321,0(2)八进制整数的表示以数字八进制整数的表示以数字0开头,如:开头,如:02
9、34表示八进制整数表示八进制整数(234)8,所对应的十进制数,所对应的十进制数为为 282+381+480=156。(3)十六进制整数的表示以十六进制整数的表示以0 x开头,如:开头,如:0 x234表示十六进制整数表示十六进制整数(234)16 (注意:十六进制数前导字符注意:十六进制数前导字符0 x,x前面是数字前面是数字0)在一个整型数据后面加一个字母在一个整型数据后面加一个字母l或或L,则认,则认为是为是long int型量型量(长整型长整型)。如。如342L、0L、78L等。等。2.2.3 实数类型 实数类型的数据即实型数据,又称之为浮点型数据。实数类型的数据即实型数据,又称之为浮
10、点型数据。Turbo C的实型数据又分为单精度型的实型数据又分为单精度型(float)和双精和双精度型度型(double)两种,它们所占内存字节数及取值范两种,它们所占内存字节数及取值范围见表围见表2.1。在在C语言程序设计中,实型数据有两种表达形式:语言程序设计中,实型数据有两种表达形式:(1)十进制数形式。如:十进制数形式。如:5.734、0.273、8、224等。等。(2)指数形式。如:指数形式。如:546E+3或或546E3都代表都代表546103。在一般系统中,一个在一般系统中,一个float型数据在内存中占型数据在内存中占4个字个字节,一个节,一个double型数据占型数据占8个字
11、节。单精度实数提个字节。单精度实数提供了供了7位有效数字,双精度实数提供位有效数字,双精度实数提供15位有效数字。位有效数字。2.2.4 字符类型 字符类型的数据即指字符型数据,它可分为字符和字符串两种。C语言的字符表示是用单引号括起来的一个字符。如A、y、*、!、+等。注意,注意,e和和E是不同的字符量。是不同的字符量。用反斜杠开头()引导的一个字符或一个数字序列也可表示字符量。反斜杠引导的字符称转义字符,其意思是将反斜杠()后面的字符转变成另外的意义。常用的以开头的特殊字符如表2.3所示。字符形式字符形式功功 能能n换换行行t横向跳格(跳到下一个横向跳格(跳到下一个输输出区)出区)v竖竖向
12、跳格向跳格b退格退格r回回车车f走走纸换页纸换页反斜杠字符反斜杠字符单单引号字符引号字符双引号字符双引号字符a报报警警0空空值值ddd1到到3位位8进进制数所代表的字符制数所代表的字符xhh1到到2位位16进进制数所代表的字符制数所代表的字符在C语言中,字符串是用一对双引号括起来的字符序列。如:SHANGHAI,AbcdeFGHijk,How are you 注意注意:a和和a是不同的。一个是字是不同的。一个是字符量符量a,一个是字符串量,一个是字符串量a。字符型数据类型标识符为char,字符型数据在内存中占一个字节。2.3 常量与变量2.3.1 常量与符号常量常量与符号常量 C语言的数据有常
13、量和变量之分。语言的数据有常量和变量之分。常量 程序运行过程中不能被改变的量。一般的数据显式写法均表示常量。如程序中:20 整型常量 15.8 实型常量 a 字符常量例:#define PRICE 30 main()int num,total;num=10;total=num*PRICE;printf(total=%d,total);还可用一个符号表示一个常量 符号常量符号常量(一般用大写,以区分变量)再如:=3.1415629#define PAI 3.1415629#define PRICE 30字符型常量可分为字符常量和字符串常量。其表示归纳如下:整型常量实型常量字符常量字符串常量C语言
14、的 常量直 接 常量符号常量(标识符定义)字符型常量数 值常量1.整型常量 C语言整型常量可以写成十进制、八进制、十六语言整型常量可以写成十进制、八进制、十六进制三种形式。合法的整型常量举例如下:进制三种形式。合法的整型常量举例如下:256,75,0(十进制整型常量)(十进制整型常量)0237,045,0621(八进制整型常量,用数字(八进制整型常量,用数字0作作前导)前导)0 x28AF,0 xED4(十六进制整型常量,用数字(十六进制整型常量,用数字0与与x作前导)作前导)435L,350L不合法的整型常量举例如下:不合法的整型常量举例如下:096(9非八进制数码)非八进制数码)48EA(
15、十六进制数缺前导字符(十六进制数缺前导字符0 x)0 xK(K不是十六进制字符)不是十六进制字符)2.实型常量实型常量只能用十进制形式表示,不能用八进制和十六进制形式表示。实型常量有两种表示方法:十进制小数形式和指数形式。用指数形式表示小数时,字母E或e之前必须有数字,且E或e后面的指数必须为整数。如:28.76,564.03,123e3,2.34E+8,15.78E-2都是合法的实型常量,而6.4E+4.8,E9,E-7都是不合法的实型常量。3.字符常量C语言的字符常量是用单撇号括起来的一个字符。如语言的字符常量是用单撇号括起来的一个字符。如x,+,n,101都是合法的字符常量。都是合法的字
16、符常量。字符数据在内存中是以字符数据在内存中是以ASCII码存储,它的存储形式与整数的存储码存储,它的存储形式与整数的存储形式类似。因此可以通用。例如:形式类似。因此可以通用。例如:#include main()char c1,c2;c1=97;c2=98;printf(%c,%cnc1,c2);printf(%d,%dnc1,c2);在程序中我们将整数在程序中我们将整数97和和98分别赋给分别赋给c1和和c2,它的作用相当于以下,它的作用相当于以下两个赋值语句:两个赋值语句:c1=a;c2=b;运行时输出结果如下:运行时输出结果如下:a,b 97,98 4.字符串常量C语言没有专门的字符串类
17、型变量,但有字符串常量。字符串常量是由一对双撇号括起来的字符序列。如:changsha,central south university,?ab都是合法的字符串常量。不要将字符常量与字符串常量混淆。如:a是字符常量,a是字符串常量假设c被指定为字符常量:char c;c=a;是正确的,而c=a;是错误的。c=CHINA;也是错误的。5.符号常量在C语言中可以用标识符定义一个常量,其一般定义格式如下:#define标识符标识符常量数据常量数据例如:#define MAX 1000#define MIN 10#define PI 3.14159#define END$符号常量一般用大写字符表示。2
18、.3.2 变量与变量定义变量是以某标识符为名字,在程序运行过程中,其值是可以改变的量。在C语言程序中,所有的变量必须加以说明,没有任何隐含的变量。变量说明主要是指出变量的名称,确定变量的数据类型。在C语言程序中,变量必须“先定义、后使用”。1.变量定义语句变量定义语句的一般格式为:类型标识符类型标识符 变量名变量名1,变量名,变量名2变量可以在程序的三种地方定义:函数内部、所有函数的外部和函数的参数定义中。由此定义的变量对应地称为局部变量、全程变量和形式参数。例如:int i,j,k;/*定义三个整型变量*/float xl,yl;/*定义两个单精度型变量*/char profit,loss;
19、/*定义两个字符型变量*/为了方便使用,变量名在定义时可以赋初值。如:int a=5,b=8,c;float x1=6.27,x2,x3=5.94;注意:注意:(1)在同一程序中变量名不允许被重复定义,在同一程序中变量名不允许被重复定义,如:如:int x,y,z;float a,b,x;/*变量名x被重复定义,不允许*/(2)大写字母和小写字母被认为是两个不同的大写字母和小写字母被认为是两个不同的字符。如:字符。如:sum和和SUM是两个不同的变量名。是两个不同的变量名。(3)凡未被定义的标识符,不得作为变量名使凡未被定义的标识符,不得作为变量名使用。用。2.变量赋初值变量使用变量使用“=”
20、赋初值。赋初值。例如:例如:int x=3.2E5,a=15.6;例例:main()int x,y,z,w;/*定义定义x,y,z,w为整型变量为整型变量*/unsigned int k;/*定义定义k为无符号整型变量为无符号整型变量*/x=10;y=-20;k=30;z=x+k;w=y+k;/*不同类型的整型变量不同类型的整型变量x、y、k可运算可运算*/printf(x+k=%d,y+k=%dn,z,w);程序运行结果为:程序运行结果为:x+k=40,y+k=10例例:大小写字母的转换。大小写字母的转换。main()char c1,c2;/*定义字符型变量定义字符型变量c1,c2*/;c1
21、=a;c2=b;/*c1、c2赋初值赋初值*/c1=c1-32;c2=c2-32;printf(%c%c,c1,c2)运行结果为:运行结果为:A B两个小写字母两个小写字母a,b通过通过c1=c1-32以及以及c2=c2-32转换转换成了大写字母成了大写字母A和和B输出。输出。3.变量的作用域按作用域的不同,变量分为局部变量和全局变量。在函数内部说明的变量称为局部变量。局部变量仅由其被定义的模块内部的语句所访问。全局变量又称全程变量或外部变量。全局变量贯穿整个程序,并且可被任何一个模块使用。2.4 运算符与表达式C语言的运算符归纳如下:语言的运算符归纳如下:(1)算术运算符算术运算符+-*/%
22、(2)关系运算符关系运算符 =!=(3)逻辑运算符逻辑运算符!&(4)位运算符位运算符|&(5)赋值运算符赋值运算符 =及其扩展赋值运算符及其扩展赋值运算符(6)条件运算符条件运算符?:?:(7)逗号运算符逗号运算符,(8)指针运算符指针运算符*和和&(9)求字节数运算符求字节数运算符sizeof(10)强制类型转换运算符强制类型转换运算符(11)分量运算符分量运算符.和和-(12)下标运算符下标运算符(13)其他其他2.4.1 算术运算符与算术表达式1.运算符运算符 C语言基本的算术运算符共有语言基本的算术运算符共有5种:种:+、-、*、/、%它们都是双目运算符,即运算符要求有两个操作数。如
23、:它们都是双目运算符,即运算符要求有两个操作数。如:x+y、x-y、x*y、x/y、x%y都采用双目运算。都采用双目运算。注意:注意:(1)要求要求%运算左右两数必须为整型数据,如运算左右两数必须为整型数据,如7%4的值为的值为3。(2)两个整数相除,结果为整数,舍去小数部分。但是,如两个整数相除,结果为整数,舍去小数部分。但是,如果除数或被除数中有一个为负值,则舍入的方向是不固定果除数或被除数中有一个为负值,则舍入的方向是不固定的。如的。如5/3=1,但但-5/3在有的机器上得到的结果是在有的机器上得到的结果是-1,有的机器有的机器则是则是-2。多数机器采取。多数机器采取“向零取整向零取整”
24、的方法,即取整后向的方法,即取整后向零靠拢(即向实数轴的原点靠拢)。零靠拢(即向实数轴的原点靠拢)。(3)字符型数据可以和数值型数据混合运算。因为字符型数字符型数据可以和数值型数据混合运算。因为字符型数据在计算机内部是用一个字节的整型数表示的。据在计算机内部是用一个字节的整型数表示的。2.算术表达式(1)算术表达式定义算术表达式定义用算术运算符和括号将运算对象(也称操作数)连接起来,用算术运算符和括号将运算对象(也称操作数)连接起来,符合符合C语言规则的式子,称为算术表达式。运算对象包括常语言规则的式子,称为算术表达式。运算对象包括常量、变量、函数等。如:量、变量、函数等。如:a*b+c/d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 基本 数据类型 表达式
限制150内