欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C语言程序的基本数据类型及其运算.ppt

    • 资源ID:67204955       资源大小:838.50KB        全文页数:126页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言程序的基本数据类型及其运算.ppt

    第第2章章C语言程序的语言程序的基本数据类型及其运算基本数据类型及其运算申闫春申闫春北京信息科技大学北京信息科技大学2008年年2月月2.1 C2.1 C语言的数据类型语言的数据类型2.1.1数据类型的一般概念数据类型的一般概念1、什么是数据类型?、什么是数据类型?数据结构数据结构+算法算法=程序程序C语言中以语言中以“数据类型数据类型”形式存在。形式存在。根据用途不同,把数据分类为可计算的数值根据用途不同,把数据分类为可计算的数值型、可打印、显示的字符型等数据类型。例:定型、可打印、显示的字符型等数据类型。例:定义义5是整型数,可以数值计算;若定义是整型数,可以数值计算;若定义5为字符为字符型,不能进行数值计算,只能进行字符显示、打型,不能进行数值计算,只能进行字符显示、打印。印。2、C语言的数据类型?语言的数据类型?主要有整型、字符型、实型主要有整型、字符型、实型(浮点型浮点型)、枚举、枚举类型、数组类型、结构体类型、共用体类型、指类型、数组类型、结构体类型、共用体类型、指针类型、空类型。针类型、空类型。在程序中对用到的所有数据都必须指定其数在程序中对用到的所有数据都必须指定其数据类型。据类型。不同类型的数据不同类型的数据,所占内存的字节数不同所占内存的字节数不同,对对应的操作也不相同。应的操作也不相同。数据类型决定:数据类型决定:1、数据占内存字节数。、数据占内存字节数。2、数据取值范围。、数据取值范围。3、可以进行的操作。、可以进行的操作。基本数据类型基本数据类型基本数据类型基本数据类型复合数据类型复合数据类型复合数据类型复合数据类型字符型字符型字符型字符型数值型数值型数值型数值型空类型空类型空类型空类型整型整型整型整型整整整整 型型型型无符号整型无符号整型无符号整型无符号整型有符号整型有符号整型有符号整型有符号整型短整形短整形短整形短整形无符号短整型无符号短整型无符号短整型无符号短整型有符号短整型有符号短整型有符号短整型有符号短整型长整型长整型长整型长整型无符号长整型无符号长整型无符号长整型无符号长整型有符号长整型有符号长整型有符号长整型有符号长整型实型实型实型实型单精度实型单精度实型单精度实型单精度实型双精度实型双精度实型双精度实型双精度实型结构结构结构结构联合联合联合联合数组数组数组数组枚举枚举枚举枚举指针指针指针指针数据类型数据类型数据类型数据类型2.1.2 2.1.2 常量常量1 1 1 1、概念:在程序运行过程中,其值不发生变化的数据,、概念:在程序运行过程中,其值不发生变化的数据,、概念:在程序运行过程中,其值不发生变化的数据,、概念:在程序运行过程中,其值不发生变化的数据,不能被改变的数据。不能被改变的数据。不能被改变的数据。不能被改变的数据。2 2 2 2、分类:、分类:、分类:、分类:直接常量:直接常量:直接常量:直接常量:12-44.6 a Hello!/12-44.6 a Hello!/12-44.6 a Hello!/12-44.6 a Hello!/字符串常量字符串常量字符串常量字符串常量 符号常量:用一个标识符代表一个常量。符号常量:用一个标识符代表一个常量。符号常量:用一个标识符代表一个常量。符号常量:用一个标识符代表一个常量。3 3 3 3、符号常量定义:格式:、符号常量定义:格式:、符号常量定义:格式:、符号常量定义:格式:#define#define#define#define 常量名常量名常量名常量名 直接常量直接常量直接常量直接常量 举例:举例:举例:举例:#define PRICE 100#define PRICE 100#define PRICE 100#define PRICE 100 /习惯上常量名用大写,变量名用小写。习惯上常量名用大写,变量名用小写。习惯上常量名用大写,变量名用小写。习惯上常量名用大写,变量名用小写。#define PI 3.14#define PI 3.14#define PI 3.14#define PI 3.14#define C1 a#define C1 a#define C1 a#define C1 a /符号常量的定义放在函数外面。符号常量的定义放在函数外面。符号常量的定义放在函数外面。符号常量的定义放在函数外面。4 4 4 4、意义:、意义:、意义:、意义:(1)(1)(1)(1)含义清楚。不存在二义性。含义清楚。不存在二义性。含义清楚。不存在二义性。含义清楚。不存在二义性。(2)(2)(2)(2)在需要改变一个常量时,能够做到在需要改变一个常量时,能够做到在需要改变一个常量时,能够做到在需要改变一个常量时,能够做到“一改全改一改全改一改全改一改全改”。举例:求某商品总价。举例:求某商品总价。#include#include#define PRICE 100 /#define PRICE 100 /定义符号常量定义符号常量 void main()void main()intint sum;sum;sum=PRICE*20;sum=PRICE*20;printfprintf(“%d n,sum);(“%d n,sum);PRICEPRICE:单价:单价符号常量符号常量2020:数量数量直接常量直接常量举例:求圆柱体的体积举例:求圆柱体的体积#include#include stdio.hstdio.h#define PI 3.1415926#define PI 3.1415926 /符号常量符号常量main()main()float float r,h,vr,h,v;scanf(%fscanf(%f%f,&r,&hf,&r,&h););v=PI*r*r*h;v=PI*r*r*h;printf(Volumeprintf(Volume=%f,v);=%f,v);常量分类常量分类整型常量,例:整型常量,例:5 5,6767,100100。实型常量,例:实型常量,例:3.14,-6.73.14,-6.7。字符型常量,例:字符型常量,例:a,Da,D。转义字符:不能直接写出的字符。转义字符:不能直接写出的字符。例:例:n n 回车换行,回车换行,单引号,单引号,”双引双引号号 字符串常量,例:字符串常量,例:”hello”,”82427141”hello”,”82427141”。符号常量,用符号命名常量。符号常量,用符号命名常量。例:例:#define PRICE 100#define PRICE 100#define PI 3.1415926#define PI 3.1415926 2.2 2.2 数据类型及变量数据类型及变量2.2.1 2.2.1 基本数据类型基本数据类型 (1)(1)从长度上分,有从长度上分,有8 8位、位、1616位、位、3232位位和和6464位。位。(2)(2)从数据的符号来分,有无符号数和从数据的符号来分,有无符号数和有符号数。有符号数。(3)(3)按照数据的数学性质,分为整型、按照数据的数学性质,分为整型、实型和字符型。实型和字符型。数值型数据的类型及表示形式,见表数值型数据的类型及表示形式,见表2-2-3 3(p15p15)。)。类型标识符类型标识符类型标识符类型标识符 名名名名 字字字字 取值范围取值范围取值范围取值范围charcharcharchar字符型字符型字符型字符型ASCIIASCIIASCIIASCII字符代码字符代码字符代码字符代码unsigned charunsigned charunsigned charunsigned char 无符号字符型无符号字符型无符号字符型无符号字符型 0 0 0 0 255255255255signed charsigned charsigned charsigned char有符号字符型有符号字符型有符号字符型有符号字符型-2-2-2-27 7 7 7 2 2 2 27 7 7 7-1-1-1-1intintintint整型整型整型整型-2-2-2-215151515 2 2 2 215151515-1-1-1-1unsigned unsigned unsigned unsigned intintintint无符号整型无符号整型无符号整型无符号整型 0 0 0 0 2 2 2 216161616-1-1-1-1singnedsingnedsingnedsingned intintintint有符号整型有符号整型有符号整型有符号整型 同同同同 intintintintfloatfloatfloatfloat浮点浮点浮点浮点10101010-38-38-38-38 1010101038383838doubledoubledoubledouble双精度型双精度型双精度型双精度型10101010-308-308-308-308 10101010308308308308void void void void 空值型空值型空值型空值型 无值无值无值无值2.2.2 2.2.2 变量及变量的定义变量及变量的定义 1 1、概念:在程序运行过程中,其值可以、概念:在程序运行过程中,其值可以改变的数据,在内存单元申请一个空间,可改变的数据,在内存单元申请一个空间,可以存放常量数据。以存放常量数据。2 2、要素:(、要素:(1 1)变量名。每个变量都必须)变量名。每个变量都必须有一个名字有一个名字变量名,变量命名遵循标识变量名,变量命名遵循标识符命名规则。代表内存中的一个存储单元。符命名规则。代表内存中的一个存储单元。(2 2)变量值。在程序运行过程中,变量)变量值。在程序运行过程中,变量值存储在内存中。在程序中,通过变量名来值存储在内存中。在程序中,通过变量名来引用变量的值。引用变量的值。3 3、标识符(、标识符(identifieridentifier)(1)(1)标识符就是一个名字(如常量名、变量标识符就是一个名字(如常量名、变量名、函数名名、函数名)。有规定的命名规则。)。有规定的命名规则。(2)(2)组成:只能由字母、数字、下划线组成。组成:只能由字母、数字、下划线组成。且第一个字符必须为字母或下划线。且第一个字符必须为字母或下划线。(3)(3)长度:标识符的有效长度随系统而异,长度:标识符的有效长度随系统而异,如果超长,则超长部分被舍弃。如果超长,则超长部分被舍弃。VC+6.0VC+6.0中规定最中规定最大长度为大长度为247247个字符。个字符。(4)(4)标识符命名的良好习惯标识符命名的良好习惯见名知意。见名知意。例如:例如:namename(姓名)、(姓名)、ageage(年龄)。(年龄)。4 4、变量定义、变量定义 数据类型数据类型 变量名变量名,变量名变量名2;2;intint a1,a2;a1,a2;float x1,x2;float x1,x2;double y1,y2;double y1,y2;char c1,c2;char c1,c2;习惯上,变量名用小写字母。习惯上,变量名用小写字母。常量名用大写字母。常量名用大写字母。例如:例如:#include#include void main()void main()float m float m;m=1.11m=1.11;m=2*mm=2*m;m=m+2.2m=m+2.2;printf(”%fprintf(”%f”,m)m);char c1 char c1 char c1 char c1,c2c2c2c2;/定义字符型变量定义字符型变量定义字符型变量定义字符型变量 intintintint x,y,zx,y,zx,y,zx,y,z;/定义整型变量定义整型变量定义整型变量定义整型变量 double volumedouble volumedouble volumedouble volume;/定义双精度型变量定义双精度型变量定义双精度型变量定义双精度型变量 float float float float sum,averagesum,averagesum,averagesum,average;/定义实型变量定义实型变量定义实型变量定义实型变量 unsigned long distanceunsigned long distanceunsigned long distanceunsigned long distance;/定义无符号长整型变量定义无符号长整型变量定义无符号长整型变量定义无符号长整型变量2.2.3 2.2.3 变量的初始化变量的初始化变量初始化:变量初始化:变量初始化:变量初始化:给变量赋初值的的语句,称为变量初始化。给变量赋初值的的语句,称为变量初始化。给变量赋初值的的语句,称为变量初始化。给变量赋初值的的语句,称为变量初始化。要求对所有用到的变量,必须先定义、后使用。要求对所有用到的变量,必须先定义、后使用。要求对所有用到的变量,必须先定义、后使用。要求对所有用到的变量,必须先定义、后使用。变量赋初值有两种方式:变量赋初值有两种方式:变量赋初值有两种方式:变量赋初值有两种方式:1 1 1 1、在定义变量的同时赋初值(也叫变量初始化)。、在定义变量的同时赋初值(也叫变量初始化)。、在定义变量的同时赋初值(也叫变量初始化)。、在定义变量的同时赋初值(也叫变量初始化)。(出现在函数体的声明部分)(出现在函数体的声明部分)(出现在函数体的声明部分)(出现在函数体的声明部分)格式:数据类型格式:数据类型格式:数据类型格式:数据类型 变量名变量名变量名变量名=初值初值初值初值,变量名变量名变量名变量名2=2=2=2=初值初值初值初值2;2;2;2;2 2 2 2、通过一个赋值语句给变量赋初值。、通过一个赋值语句给变量赋初值。、通过一个赋值语句给变量赋初值。、通过一个赋值语句给变量赋初值。(出现在函数体的执行部分)(出现在函数体的执行部分)(出现在函数体的执行部分)(出现在函数体的执行部分)格式:变量名格式:变量名格式:变量名格式:变量名 =初值;初值;初值;初值;两种方式的效果是等价的。两种方式的效果是等价的。两种方式的效果是等价的。两种方式的效果是等价的。例如:例如:例如:例如:intintintint a,ba,ba,ba,b=3;=3;=3;=3;intintintint a,b;a,b;a,b;a,b;b=3;b=3;b=3;b=3;注意:没有赋初值的变量并不意味着该变量中没有数值,注意:没有赋初值的变量并不意味着该变量中没有数值,注意:没有赋初值的变量并不意味着该变量中没有数值,注意:没有赋初值的变量并不意味着该变量中没有数值,而只表明该变量中尚未存放特定值。而只表明该变量中尚未存放特定值。而只表明该变量中尚未存放特定值。而只表明该变量中尚未存放特定值。关于变量的几点说明关于变量的几点说明 1 1 1 1、程序中用到的变量必须、程序中用到的变量必须、程序中用到的变量必须、程序中用到的变量必须“先定义(先定义(先定义(先定义(declaredeclaredeclaredeclare),后),后),后),后使用使用使用使用”。2 2 2 2、C C C C语言的关键字不能用作变量名。语言的关键字不能用作变量名。语言的关键字不能用作变量名。语言的关键字不能用作变量名。3 3 3 3、C C C C语言对英文字母的大小写敏感,即同一字母的大语言对英文字母的大小写敏感,即同一字母的大语言对英文字母的大小写敏感,即同一字母的大语言对英文字母的大小写敏感,即同一字母的大小写,被认为是两个不同的字符。小写,被认为是两个不同的字符。小写,被认为是两个不同的字符。小写,被认为是两个不同的字符。4 4 4 4、定义变量时,给几个变量赋相同的初值,、定义变量时,给几个变量赋相同的初值,、定义变量时,给几个变量赋相同的初值,、定义变量时,给几个变量赋相同的初值,应写成应写成应写成应写成 :intintintint a=3,b=3,c=3;a=3,b=3,c=3;a=3,b=3,c=3;a=3,b=3,c=3;不能写成不能写成不能写成不能写成:intintintint a=b=c=3;a=b=c=3;a=b=c=3;a=b=c=3;5 5 5 5、给变量赋值时,正常情况下应给变量赋相同类型的、给变量赋值时,正常情况下应给变量赋相同类型的、给变量赋值时,正常情况下应给变量赋相同类型的、给变量赋值时,正常情况下应给变量赋相同类型的数据。若给变量赋与其类型不同的数据时,需进行类型转数据。若给变量赋与其类型不同的数据时,需进行类型转数据。若给变量赋与其类型不同的数据时,需进行类型转数据。若给变量赋与其类型不同的数据时,需进行类型转换换换换(后面介绍赋值语句时详细介绍后面介绍赋值语句时详细介绍后面介绍赋值语句时详细介绍后面介绍赋值语句时详细介绍)。3232个关键字:个关键字:(由系统定义,不能再定义由系统定义,不能再定义)auto break case char constauto break case char constauto break case char constauto break case char constcontinue default do double elsecontinue default do double elsecontinue default do double elsecontinue default do double elseenumenumenumenum extern float for extern float for extern float for extern float for gotogotogotogotoif if if if intintintint long register return long register return long register return long register returnshort signed short signed short signed short signed sizeofsizeofsizeofsizeof static struct static struct static struct static structswitch switch switch switch typedeftypedeftypedeftypedef unsigned union void unsigned union void unsigned union void unsigned union voidvolatile whilevolatile whilevolatile whilevolatile while变量变量举例举例double p=15.5double p=15.5double p=15.5double p=15.5,d=0.1d=0.1d=0.1d=0.1;float xfloat xfloat xfloat x,y y y y,z=4.53z=4.53z=4.53z=4.53;short short short short intintintint i=j=k=555 i=j=k=555 i=j=k=555 i=j=k=555;char c=a;char c=a;char c=a;char c=a;下面程序中有几处错误下面程序中有几处错误下面程序中有几处错误下面程序中有几处错误?include include include include void main()void main()void main()void main()intintintint student,student,student,student,age;age;age;age;intintintint if if if if =adrressadrressadrressadrress =1;1;1;1;float score float score float score float score =90;90;90;90;stadentstadentstadentstadent =2;2;2;2;/undeclared identifier/undeclared identifier/undeclared identifier/undeclared identifier Age Age Age Age =20.7;20.7;20.7;20.7;/undeclared identifier/undeclared identifier/undeclared identifier/undeclared identifier printf(%dprintf(%dprintf(%dprintf(%d%d%d%d%d%d%d%d%d%f,if,student,age,scoref,if,student,age,scoref,if,student,age,scoref,if,student,age,score););););错误错误:1 1、ifif:为关键词:为关键词。2 2、int if=address=1;int if=address=1;应分别赋初值应分别赋初值。3 3、stadentstadent:未定义的标识符,拼写错误:未定义的标识符,拼写错误。4 4、AgeAge:未定义的标识符,大小写敏感。:未定义的标识符,大小写敏感。对对scorescore和和ageage赋值时会自动进行类型转化赋值时会自动进行类型转化。9090转化为转化为 90.0;20.790.0;20.7转化为转化为2020。类型转换在赋初值和不同类型数据进行混合类型转换在赋初值和不同类型数据进行混合运算时都会遇到。有规定的转换规则运算时都会遇到。有规定的转换规则。2.2.4 2.2.4 数据类型转换数据类型转换 在语言中,整型、实型和字符型数据之间可以进在语言中,整型、实型和字符型数据之间可以进在语言中,整型、实型和字符型数据之间可以进在语言中,整型、实型和字符型数据之间可以进行混合运算(因为字符数据与整型数据可以通用)。行混合运算(因为字符数据与整型数据可以通用)。行混合运算(因为字符数据与整型数据可以通用)。行混合运算(因为字符数据与整型数据可以通用)。如果一个运算符两侧的操作数的数据类型不同,则如果一个运算符两侧的操作数的数据类型不同,则如果一个运算符两侧的操作数的数据类型不同,则如果一个运算符两侧的操作数的数据类型不同,则系统按系统按系统按系统按“先转换、后运算先转换、后运算先转换、后运算先转换、后运算”的原则,首先将数据自动转的原则,首先将数据自动转的原则,首先将数据自动转的原则,首先将数据自动转换成同一类型,然后在同一类型数据间进行运算。换成同一类型,然后在同一类型数据间进行运算。换成同一类型,然后在同一类型数据间进行运算。换成同一类型,然后在同一类型数据间进行运算。当要对不同类型的数据进行操作时,应首先将其转当要对不同类型的数据进行操作时,应首先将其转当要对不同类型的数据进行操作时,应首先将其转当要对不同类型的数据进行操作时,应首先将其转换成相同的数据类型,然后进行操作。换成相同的数据类型,然后进行操作。换成相同的数据类型,然后进行操作。换成相同的数据类型,然后进行操作。有两种转换方式:有两种转换方式:有两种转换方式:有两种转换方式:1 1 1 1、隐式类型转换(自动转换,先转换、后运算)、隐式类型转换(自动转换,先转换、后运算)、隐式类型转换(自动转换,先转换、后运算)、隐式类型转换(自动转换,先转换、后运算)2 2 2 2、显式类型转换、显式类型转换、显式类型转换、显式类型转换1 1 1 1、隐式类型转换(自动转换,先转换、后运算)、隐式类型转换(自动转换,先转换、后运算)、隐式类型转换(自动转换,先转换、后运算)、隐式类型转换(自动转换,先转换、后运算)所谓隐式类型转换就是在编译时由编译程序按照一定所谓隐式类型转换就是在编译时由编译程序按照一定所谓隐式类型转换就是在编译时由编译程序按照一定所谓隐式类型转换就是在编译时由编译程序按照一定规则自动完成。规则自动完成。规则自动完成。规则自动完成。转换发生条件转换发生条件转换发生条件转换发生条件:运算转换运算转换运算转换运算转换不同类型数据混合运算时。不同类型数据混合运算时。不同类型数据混合运算时。不同类型数据混合运算时。赋值转换赋值转换赋值转换赋值转换把一个值赋给与其类型不同的变量时把一个值赋给与其类型不同的变量时把一个值赋给与其类型不同的变量时把一个值赋给与其类型不同的变量时。输出转换输出转换输出转换输出转换输出时转换成指定的输出格式。输出时转换成指定的输出格式。输出时转换成指定的输出格式。输出时转换成指定的输出格式。函数调用转换函数调用转换函数调用转换函数调用转换实参与形参类型不一致时转换。实参与形参类型不一致时转换。实参与形参类型不一致时转换。实参与形参类型不一致时转换。转换规则:转换规则:doublefloatlongunsignedintchar,short高高低低 1、纵向向上的箭头表示不同类型的、纵向向上的箭头表示不同类型的 转换方向(由低类型转化为高类转换方向(由低类型转化为高类 型),不表示转换所经的步骤。型),不表示转换所经的步骤。2、横向向左的箭头表示必须的转换。、横向向左的箭头表示必须的转换。说明说明:必定的转换必定的转换运算对象类型运算对象类型不同时转换不同时转换intintintint i;i;i;i;float f;float f;float f;float f;double d;double d;double d;double d;long e;long e;long e;long e;i=2;i=2;i=2;i=2;f=2.5;f=2.5;f=2.5;f=2.5;d=3.9;d=3.9;d=3.9;d=3.9;e=3;e=3;e=3;e=3;10+a+i*f-d/e10+a+i*f-d/e10+a+i*f-d/e10+a+i*f-d/e1075.01.3112.0110.7intdoubledoubledoubledouble 思考:根据已知变量定义及赋值语句,计算以下思考:根据已知变量定义及赋值语句,计算以下思考:根据已知变量定义及赋值语句,计算以下思考:根据已知变量定义及赋值语句,计算以下表达式的值,并说明每一步所得结果的数据类型。表达式的值,并说明每一步所得结果的数据类型。表达式的值,并说明每一步所得结果的数据类型。表达式的值,并说明每一步所得结果的数据类型。2 2、显式类型转换(强制转换)、显式类型转换(强制转换)一般形式:一般形式:(要转换成的数据类型要转换成的数据类型)()(被转换的表达式被转换的表达式)举例:举例:intint i i;i=i+(int)9.801 i=i+(int)9.801 float float x,yx,y;x=2.3;y=4.5;x=2.3;y=4.5;(int)(x+yint)(x+y)/6 ()/6 (intint)(int)x+yint)x+y /6.5 (double)/6.5 (double)说明:强制转换得到的是所需类型的中间变量,原变说明:强制转换得到的是所需类型的中间变量,原变说明:强制转换得到的是所需类型的中间变量,原变说明:强制转换得到的是所需类型的中间变量,原变量或表达式的类型不变。量或表达式的类型不变。量或表达式的类型不变。量或表达式的类型不变。ssssssssssssssssssssssssssssssssssssssssssssssss 例如,例如,例如,例如,(double)adouble)adouble)adouble)a 只是将变量只是将变量只是将变量只是将变量a a a a的值转换成一个的值转换成一个的值转换成一个的值转换成一个doubledoubledoubledouble型的中间量,型的中间量,型的中间量,型的中间量,a a a a的数据类型并未转换成的数据类型并未转换成的数据类型并未转换成的数据类型并未转换成doubledoubledoubledouble型。型。型。型。当被转换的表达式是一个简单表达式时,外面的一对当被转换的表达式是一个简单表达式时,外面的一对当被转换的表达式是一个简单表达式时,外面的一对当被转换的表达式是一个简单表达式时,外面的一对圆括号可以缺省。圆括号可以缺省。圆括号可以缺省。圆括号可以缺省。例如:例如:例如:例如:(double)adouble)adouble)adouble)a 等价于等价于等价于等价于(double)(adouble)(adouble)(adouble)(a)/*/*/*/*将变量将变量将变量将变量a a a a的值转换成的值转换成的值转换成的值转换成doubledoubledoubledouble型型型型*/(int)(xint)(xint)(xint)(x+y)/*+y)/*+y)/*+y)/*将将将将x+yx+yx+yx+y的结果转换成的结果转换成的结果转换成的结果转换成intintintint型型型型*/(float)5/2(float)5/2(float)5/2(float)5/2等价于等价于等价于等价于(float)(5)/2(float)(5)/2(float)(5)/2(float)(5)/2 /*/*/*/*将将将将5 5 5 5转换成实型,再除以转换成实型,再除以转换成实型,再除以转换成实型,再除以2 2 2 2(=2.5=2.5=2.5=2.5)*/(float)(5/2)(float)(5/2)(float)(5/2)(float)(5/2)/*/*/*/*将将将将5 5 5 5整除整除整除整除2 2 2 2的结果(的结果(的结果(的结果(2 2 2 2)转换成实型()转换成实型()转换成实型()转换成实型(2.02.02.02.0)*/#include void main()float x;int i;x=3.6;i=(int)x;printf(x=%f,i=%d,x,i);思考:以下程序的输出结果是什么?思考:以下程序的输出结果是什么?思考:以下程序的输出结果是什么?思考:以下程序的输出结果是什么?x=3.600000,i=3程序运行结果:程序运行结果:程序运行结果:程序运行结果:结论:结论:较高类型较高类型向较低类型转换向较低类型转换时可能发生时可能发生精度精度损失问题损失问题例:已知三角形的边长例:已知三角形的边长例:已知三角形的边长例:已知三角形的边长a a a a、b b b b、c c c c,求三角形周长的一半。求三角形周长的一半。求三角形周长的一半。求三角形周长的一半。#include void main()float a,b,c,s;a=3;b=4;c=5;s=1/2*(a+b+c);printf(s=%8.2f,s);s=0.00程序运行结果:程序运行结果:程序运行结果:程序运行结果:?s=6.00程序运行结果:程序运行结果:程序运行结果:程序运行结果:改为:改为:1.0/2 (1/2.0)或或 (float)1/2 (1/(float)2)在求三角形面积时会用到周长的一半。在求三角形面积时会用到周长的一半。在求三角形面积时会用到周长的一半。在求三角形面积时会用到周长的一半。改为:改为:改为:改为:1.0/2 1/2.0 1.0/2.01.0/2 1/2.0 1.0/2.01.0/2 1/2.0 1.0/2.01.0/2 1/2.0 1.0/2.0 或或或或 (float)1/2 1/(float)2)(float)1/(float)2(float)1/2 1/(float)2)(float)1/(float)2(float)1/2 1/(float)2)(float)1/(float)2(float)1/2 1/(float)2)(float)1/(float)22.3 2.3 运算符和表达式运算符和表达式1、表达式:、表达式:由操作符和操作数连接起来的、符由操作符和操作数连接起来的、符合合C语法规则的式子。例:语法规则的式子。例:a-b、c=9.8。赋值表达式:进行赋值操作,如:变量初始化。赋值表达式:进行赋值操作,如:变量初始化。算术表达式:一般计算,如加、减、乘、除等。算术表达式:一般计算,如加、减、乘、除等。关系表达式:进行比较判断。关系表达式:进行比较判断。逻辑表达式:进行逻辑比较判断。逻辑表达式:进行逻辑比较判断。条件表达式:进行条件满足与否的判断。条件表达式:进行条件满足与否的判断。逗号表达式:实际上是一种复杂运算,可以逗号表达式:实际上是一种复杂运算,可以包含多个算术表达式。包含多个算术表达式。2.3.1运算符和表达式概述运算符和表达式概述2 2 2 2、C C C C语言的操作符语言的操作符语言的操作符语言的操作符(1 1 1 1)算术运算符算术运算符算术运算符算术运算符 +-*/%+-*/%+-*/%+-*/%(2 2 2 2)关系运算符关系运算符关系运算符关系运算符 =!=(3 3 3 3)逻辑运算符逻辑运算符逻辑运算符逻辑运算符 !&|!&|!&|!&|(4 4 4 4)位运算符)位运算符)位运算符)位运算符|&|&|&|&(5 5 5 5)赋值运算符)赋值运算符)赋值运算符)赋值运算符 =及其扩展赋值运算符及其扩展赋值运算符及其扩展赋值运算符及其扩展赋值运算符(6 6 6 6)条件运算符)条件运算符)条件运算符)条件运算符?:(7 7 7 7)逗号运算符)逗号运算符)逗号运算符)逗号运算符 ,(8 8 8 8)指针运算符)指针运算符)指针运算符)指针运算符 *&(9 9 9 9)求字节数运算符)求字节数运算符)求字节数运算符)求字节数运算符 sizeofsizeofsizeofsizeof(10101010)强制类型转换运算符)强制类型转换运算符)强制类型转换运算符)强制类型转换运算符 (类型)类型)类型)类型)(11111111)分量运算符)分量运算符)分量运算符)分量运算符 .(12121212)下标运算符)下标运算符)下标运算符)下标运算符 (13131313)其他:自增、自减:)其他:自增、自减:)其他:自增、自减:)其他:自增、自减:+、-,函数调用运算符,函数调用运算符,函数调用运算符,函数调用运算符()()()()2.3.2 2.3.2 赋值运算符和赋值表达式赋值运算符和赋值表达式对于复合赋值表达式,如:对于复合赋值表达式,如:a+=m-n;它相当于:它相当于:a=a+(m-n);intt=5;t+=t-=t*t;?-15,-40-15,-40赋值运算符包含:赋值运算符包含:赋值运算符包含:赋值运算符包含:简单赋值运算符:简单赋值运算符:简单赋值运算符:简单赋值运算符:=复合赋值运算符:复合赋值运算符:复合赋值运算符:复合赋值运算符:+=+=+=+=,-=-=-=-=,*=,/=/=/=/=,%=%=%=%=,简单赋值运算符的一般形式为:简单赋值运算符的一般形式为:简单赋值运算符的一般形式为:简单赋值运算符的一般形式为:变量变量变量变量 =表达式;表达式;表达式;表达式;它的作用是将一个表达式的值赋给一个变量。它的作用是将一个表达式的值赋给一个变量。它的作用是将一个表达式的值赋给一个变量。它的作用是将一个表达式的值赋给一个变量。复合赋值运算的一般格式为:复合赋值运算的一般格式为:复合赋值运算的一般格式为:复合赋值运算的一般格式为:变量变量变量变量 双目运算符双目运算符双目运算符双目运算符 =表达式;表达式;表达式;表达式;复合赋值运算符复合赋值运算符复合赋值运算符复合赋值运算符 它等价于:变量它等价于:变量它等价于:变量它等价于:变量 =变量变量变量变量 双目运算符双目运算符双目运算符双目运算符 (表达式表达式表达式表达式)。只有当表达式简化为一个变量或一个常数时,两边只有当表达式简化为一个变量或一个常数时,两边只有当表达式简化为一个变量或一个常数时,两边只有当表达式简化为一个变量或一个常数时,两边的括号可以省略。的括号可以省略。的括号可以省略。的括号可以省略。1 1

    注意事项

    本文(C语言程序的基本数据类型及其运算.ppt)为本站会员(s****8)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开