C语言数据类型与运算规则.ppt_第1页
C语言数据类型与运算规则.ppt_第2页
C语言数据类型与运算规则.ppt_第3页
C语言数据类型与运算规则.ppt_第4页
C语言数据类型与运算规则.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据类型与运算规则,一、数据与数据类型二、C语言的基本数据类型及其表示三、C语言中的运算规则四、算术运算与赋值运算五、关系运算与逻辑运算六、其他运算,数据与数据类型,什么是数据?在程序中,数据是程序加工、处理的对象,也是加工的结果。什么是数据类型?在程序中,程序所能处理的基本数据对象被划分成具有同样性质的数据的集合,这样的数据集合称为数据类型。在C语言中,任何数据呈现的形式有两种:常量或变量。无论常量还是变量都必须属于各种不同的数据类型。,C语言规定的主要数据类型如下:整数型int单精度型float实数型(浮点型)基本类型双精度型double字符型char数据类型指针类型数组型构造类型结构型struct联合型union枚举型enum无值类型(空类型)void,数据与数据类型,什么是类型名?C语言为每种类型定义了一个标识符,它通常被称为类型名。类型名由一个或几个关键字组成。什么是构造类型?构造类型一般是由其他的数据类型按照一定的规律构造而成,结构比较复杂。,数据与数据类型,C语言的基本数据类型及其表示,什么是常量?常量是指程序在运行时不能改变的量。(一般以自身的存在形式直接表示)注:常量并不占内存,在程序运行时它作为操作对象直接出现在运算器的各寄存器中,C语言的基本数据类型及其表示,十进制整型常量八进制以数字“0”开头数值常量十六进制以数字“0 x”或“0X”开头实型常量小数形式如:-1.2,0.指数形式如:-12.2e-5常量字符常量字符常量字符串常量注:长整型也可以用十进制、八进制和十六进制形式表示。其表示形式是在常量之后加上字母“l”或者“L”。例如:123L,123l,常量应用:整型常量:123,-123,123L,123l八进制(以0开头):0123,-038,0123l,0123L十六进制(以0 x开头):0 x123,-0 x1f实型常量:-1.23,2E+4,-2.3E-4字符常量:a,A,b,1,0字符串常量:“Computer”,C语言的基本数据类型及其表示,什么是符号常量?用标识符表示的常量称为符号常量。C语言中用宏定义命令对符号常量进行定义,其定义形式为:#define标识符常量(宏定义的功能是:在编译预处理时,将程序中宏定义命令之后出现的所有符号常量用宏定义命令中对应的常量一一替代。)#definePR30main()intnum,total;num=3;total=num*PR;printf(“total=%dn”,total);,C语言的基本数据类型及其表示,1、符号PR代替常量30,称为符号常量2、符号常量的定义是在编译预处理语句里进行的,称为宏定义3、符号常量一般用大写,什么是变量?变量是指在程序运行时可以改变的量。在程序里的一个变量可以看成是一个存储数据的容器或存储单元,在该单元中存放变量的值.变量的定义形式:类型说明符变量名表;变量名表的形式是:变量名1,变量名2,变量名n,C语言的基本数据类型及其表示,C语言提供的基本变量类型有:整型变量数值变量变量实型变量字符变量指针变量例如:inta,b,c;/*说明a,b,c为整型变量*/charcc;/*说明cc为字符变量*/doublex,y;/*说明x,y为双精度实型变量*/注意:变量要先定义,后使用,每一个变量被指定为一确定类型。关键字和预定义标识符不要另作它用。,C语言的基本数据类型及其表示,整型数据及其表示整型的类型:整型、长整型、无符号整型和无符号长整型。(计算机中的整型实际上是数学中的整型的一个子集,)(C语言中,所有的数据型常量都带有符号,所以整型常量只区别整型和长整型两种形式,而没有无符号整型常量。)整型常量C的整常数可用以下三种形式表示:1:十进制整数:123,-456,02:八进制整数:以0开头的数是八进制数:0123=八进制123,十进制83(1*8*8+2*8+3)011=十进制93:十六进制整数:以0 x或0X开头的数是十六进制数,C语言的基本数据类型及其表示,整型常量C的整常数可用以下三种形式表示:1:十进制整数:123,-456,02:八进制整数:以0开头的数是八进制数:0123=八进制123,十进制83(1*8*8+2*8+3)011=十进制93:十六进制整数:以0 x或0X开头的数是十六进制数0 x123=16进制123,十进制291(1*16*16+2*16+3)-0 x11=十进制-17注:一个整常量后加一个字母l或L,则认为是long型常量.例如:123L,017l,0Xf3acL整型变量以关键字int作为基本类型说明符,另外配合4个类型修饰符,用来改变和扩充基本类型的含义,以适应更灵活的应用。,C语言的基本数据类型及其表示,ANSI标准规定的整型变量属性表,例:已知,整数a,b,正数u。求:a+u,b+u的值main()inta,b,c,d;unsignedu;a=12;b=-24;u=32767;c=a+u;d=b+u;printf(”a+u=%d,b+u=%dn”,c,d);注:数据的溢出,常量与变量的类型要匹配,C语言的基本数据类型及其表示,实型数据及其表示,C语言的基本数据类型及其表示,实型常量C语言中的实数有两种表示形式:1:十进制形式:由符号,数字和小数点组成,如:0.123,0.0,-54.02:指数形式:十进制小数e指数或十进制小数E指数如123e3-1.23E-2,e或E的前面必须有数字,后面必须为整数。如不合法的指数形式:e3,2.1e3.5.e3,e注:1、实型常量一般都作为双精度实数来处理,并只用十进制表示。2、如果要表示单精度实型常量和长双精度实型常量,只要在上述书写形式后面分别加上后缀f(F)或l(L)即可。例如:2.3f,-21.23e3L,C语言的基本数据类型及其表示,实型变量在C语言中,实型变量分为单精度、双精度和长双精度三种类型。所用关键字如下:float单精度double双精度longdouble长双精度例如:floata,b;doublec,d;longdoublee,fmain()floata;doubleb;a=12345.6789;b=0.1234567891234567899e15;printf(“a=%f,b=%fn”,a,b);,C语言的基本数据类型及其表示,实际输出结果:a=12345.678711;b=123456789123456.79700;,字符型数据及其表示什么是字符型数据?字符型数据包括字符和字符串两种,字符型数据在计算机中存储的是字符的ASCII码,而不是字符本身,一个字符占一个字节。(在C语言中字符型数据和整型数据可以通用。即:它可以与整型数据进行算术运算、相互赋值等,也可采用字符或整型数据两种输出)什么是字符型常量?C语言中字符常量是用单引号括起来的一个字符.如a,A,?,#”等都是字符常量,但注意a,A是不同的两个字符常量。(字符常量占8位,一个字节。按ASCII码存储。)什么是转义字符?转义字符是一种特殊形式的字符常量,其意义是将转义符“”后的字符原来的含义进行转变,变成某种另外特殊约定的含义。,C语言的基本数据类型及其表示,什么是字符型变量?字符型变量就是用来存放字符的变量。例:charc1,c2;c1=a;c2=b;什么是字符串常量?字符串常量就是用一对双引号括起来的字符序列。注:C语言没有专门的字符串变量,如需要处理字符串,一般用字符型数组来实现。例:charc;c=”a”是错的.注意:不能将一个字符串赋给一个字符变量。需要字符数组来存放字符串常量,字符常量与字符串常量的区别有两个方面:1)字符串常量是用一对双引号括起来的一串字符,字符常量是用一对单引号括起来的单个字符。2)字符常量在内存中占一个字符,而字符串常量除了每个字符占一个字节外,其字符串结束符0也要占一个字节。如:字符常量a占一个字节,而字符串常量”a”占2个字节。,C语言的基本数据类型及其表示,指针型数据及其表示指针是一种数据类型,它是一个变量在内存中所对应存储单元的地址。指针的说明形式:类型说明符*变量名main()floata,*pa;intx,y,*px;pa=,C语言的基本数据类型及其表示,变量的初始化变量的初始化是指在变量说明的时候同时对变量赋初值。floatx=123.2;inta,b,c=10;intx,*pa=,C语言的基本数据类型及其表示,C语言中的运算规则,运算的操作规则包括:运算符、表达式和运算过程。运算符是C语言里用于描述对数据进行运算的特殊符号。C语言的运算符按其在表达式中与运算对象的关系可分为:单目运算:一个运算符连接一个运算对象,如:+、-双目运算:一个运算符连接二个运算对象,如:+、-三目运算:一个运算符连接三个运算对象,C语言中只有唯一一个“?:”,C语言的运算符按其在表达式中所起作用可分为:(P54)算术运算符:+、-、*、/、自增自减运算符:+、-赋值与赋值组合运算符:、+、-=、*=、/=关系运算符:、条件运算符:?:逗号运算符:,其他:*、-i;运算符在变量前面,称为前缀式,表示变量在使用前自动加1或减1;i+;i-;运算符在变量后面,称为后缀式,表示变量在使用后自动加1或减1;注:+、-运算只能用于变量(并且变量只能是整数、字符型和指针),不能用于表达式或常量。因为自增、自减运算是对变量进行加1或减1操作后再对变量赋新的值,而表达式或常量都不能进行赋值操作。,算术运算与赋值运算,例:设x=5y=+x;等价于:先计算x=x+1(结果x=6),再执行y=x,结果y=6y=x+;等价于:先执行y=x,再计算x=x+1,结果y=5,x=6y=x+*x+;y=25x=7y=+x*+x;y=49x=7,算术运算与赋值运算,赋值运算符和赋值表达式赋值运算符“=”功能是计算赋值运算符“”右边表达式的值,并将计算结果赋给“”左边的变量。赋值运算符的优先级只高于逗号,比其他的都低。结合性自右至左赋值表达式由赋值运算符将一个变量和一个表达式连接起来的式子变量名表达式如:b=x*y+5等价于b=(x*y+5),算术运算与赋值运算,类型转换在对赋值表达式求解过程中,如果赋值运算符两边的数据类型不一致,赋值时要进行类型转换。其转换工作由C编译系统自动完成,转换原则是以“”左边的变量的类型为准。即将“”右边的值转换为与“”左边的变量类型相一致。类型转换方式:1、整型=实型:舍弃实数的小数部分2、实数=整数:数值不变,但以实数形式表示数3、整型=字符型:将字符数据的低8位放入整数的低8位中,算术运算与赋值运算,main()P59inti=5;floata=3.5,a1;doubleb=123456789.123456789;charc=A;print(“i=%d,a=%f,b=%f,c=%cn”,i,a,b,c);a1=i;i=a;a=b;c=i;print(“i=%d,a=%f,a1=%f,c=%cn”,i,a,a1,c);运行结果如下:i=5,a=3.500000,b=123456789.123457,c=Ai=3,a=123456792.000000,a1=5.000000,c=,算术运算与赋值运算,组合赋值运算符组合赋值表达式1)组合赋值运算符在赋值运算符“”之前加上其他运算符可以构成组合运算符,用于完成赋值组合运算操作。表示形式:运算符其中的运算符可以是:+、-、*、/、|、(1)a+=a(2)a-=a(3)a*=2+3(4)a/=a+a(5)a%=(n%=2)(6)a+=a-=a*=a,算术运算与赋值运算,关系运算与逻辑运算,关系运算与逻辑运算,用来构造C程序控制中的条件,实现程序的选择结构和循环结构控制。对于关系运算和逻辑运算的结果,将逻辑“真”记录为整数1,将逻辑“假”记录为整数0。C语言中“真”和“假”的表示C语言没有逻辑类型数据,是用数值来表示:非0值表示“真”,0表示“假”。任意一个表达式,如果值为0时,就代表一个“假”值;值是非0,无论是正数还是负数,都代表一个“真”值。使用逻辑或关系表达式返回0作“假”值,返回1作“真”值。,关系运算符p61优先级:=和!=的优先级低于前四种;关系运算符的优先级低于算术运算符,高于赋值运算符。如:A+BC+D结果只有两种:真(1)、假(0)。注意:由于计算机处理浮点数是有误差的,所以不要拿浮点数来做相等的比较。如:x=100.0;y=(x=100);,关系运算与逻辑运算,关系运算与逻辑运算,关系表达式用关系运算符将两个表达式连接起来的式子称为关系表达式。(表达式可以是算术表达式、关系表达式、逻辑表达式、赋值表达式和字符表达式。但一般关系运算要求关系运算符连接的两个运算对象为同类型数据。进行关系运算时,先计算表达式的值,然后再进行关系比较运算。)例:设a=2,b=3,c=4a+b3*c两个算术表达式(a+b)c)两个关系表达式A!=a两个字符表达式,逻辑运算符与逻辑表达式逻辑运算符(逻辑运算要求运算对象为“真”或“假”(0)。),关系运算与逻辑运算,逻辑运算真值表(或运算规则)优先级从高到低有:!,x=25/y;“.”和“-”运算符作用是引用构造数据类型的结构和联合中的分量,即表示结构或联合中的成员。其形式为:结构变量名.结构成员名或结构指针变量名.结构成员名,“()”和“”运算符园括号改变优先级别,方括号用于标识数组元素的下标。“*”和“b=*x表示访问变量a的值。,其他运算,(type)运算符(type)强制类型转换符,是单目运算符,其作用是进行数据类型的强制转换,将右边表达式的值转换成括号中指定的数据类型。(类型名)表达式例:floata;intb;(int)(a*b)将a*b结果强制类型转换(int)a*b将a强制类型转换思考:华氏温度转换成摄氏温度公式为:c=(5/9)(f-32)注:强制数据类型转换只暂时的改变使用数据的类型

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论