




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,本章导读本章通过C程序实例分析着手,使读者理解C语言的基本数据类型的表示形式、存储格式及相关的运算,掌握变量定义的方法及意义,能够灵活运用各种表达式,为C语言编程打下基础。,C语言程序设计(VisualC+6.0环境),返回本书目录,第2章数据类型及表达式,本章主要知识点(1)基本的数据类型。(2)常量和变量。(3)C语言各种运算符和表达式的应用。,第2章数据类型及表达式,C语言程序设计(VisualC+6.0环境),返回本章导读,2.2C语言的数据类型,2.3运算符及表达式,2.1C语言各种运算符和表达式的应用,C语言程序设计(VisualC+6.0环境),返回本章目录,2.1C语言各种运算符和表达式的应用,2.C程序实例(2),1.C程序实例(1),【例2.1】关于常量、变量及数据类型说明的程序实例。程序名为l2_1.cpp。#includestdio.hmain()inta=3;/*定义整型变量a并赋予常量值3*/shortr=6;/*定义短整型变量r并赋予常量值6*/charc=a;/*定义字符变量c并赋予字符常量值a*/floatpi=3.14;/*定义单精度实型变量pi并赋予实型常量值3.14*/doubles;/*定义双精度实型变量s*/s=pi*r*r;/*将pi*r*r值赋给s*/printf(int:%d,short:%d,char:%d,float:%d,double:%dn,sizeof(a),sizeof(r),sizeof(c),sizeof(pi),sizeof(s);/*输出各变量占内存的字节数*/printf(a=%d,r=%d,c=%c,pi=%f,s=%lfn,a,r,c,pi,s);/*输出各变量的值*/,2.1.1C程序实例(1),C语言程序设计(VisualC+6.0环境),返回本节目录,1.C程序实例1,程序结果,例2.1程序结果及分析,返回例题,返回本节目录,结果分析:变量可以被定义成不同的数据类型并赋值,不同类型的数据在内存中所占的字节数不同,通过sizeof()求得数据宽度。短整型、整型、字符型、单精度实型、双精度实型在内存中分别占2字节、4字节、1字节、4字节和8字节。同时,这些数据在输出时所使用的输出格式控制符也不相同,分别为%d、%d、%c、%f和%lf形式。由此可见,数据表现为常量或变量,数据又具有不同的数据类型,不同数据类型的数据存储格式不同,数据的输出格式控制也不相同。注意:在TruboC环境下,整型数据存储时在内存中占2字节。,2.1.1C程序实例(2),C语言程序设计(VisualC+6.0环境),2.C程序实例2,【例2.2】关于运算符和表达式的程序实例。/*程序名为l2_2.cpp。*/#includestdio.hmain()inti=3,a=5,b=7,c,d;/*定义变量并赋初值*/printf(i=%dn,i+);/*输出i+的值*/printf(i=%dn,i);/*输出i的值*/c=ab?a:b;/*计算表达式c=ab?a:b*/printf(c=%dn,c);/*输出c的值*/d=ab?a:b;语句中包括了关系运算符“”、条件运算符“?:”、赋值运算符“=”,经过各种运算处理后c的值为7。d=a”、“?:”、“=”。,当一个运算对象的两侧的运算符的优先级相同时,运算的结合方向称为结合性。运算符的结合性分为左结合和右结合两种。在C语言中,运算对象先与左面的运算符结合称左结合,如+、-、*、/的结合方向为自左向右;运算对象先与右面的运算符结合称右结合,如单目运算符+、-的结合方向是自右向左。,2.3.2算术运算符及算术表达式,C语言程序设计(VisualC+6.0环境),算术运算符分基本算术运算符和自增、自减运算符。1.基本算术运算符,基本算术运算符包括加法(+)、减法(-)、乘法(*)、除法(/)和求余(%)。后三种运算符优先级高于前两种,它们都是左结合性。对于运算符/和%有如下说明:,(1)若除法运算符的运算对象均为整型数据,则结果为其商的整数部分,舍去小数部分。如13/7的结果为1。若运算对象中有一个为负值,则舍入的方向是不固定的。如,-13/7在有的机器上得到结果是-1,有的机器上得到结果是-2,但多数机器采取“向零取整”方法,即13/7=1,-13/7=-1,取整后向零靠拢。,返回本节目录,(2)求余运算符的运算对象必须是整型数据,运算结果的符号与被除数的符号相同,如,-13%7运算结果为-6,13%-7运算结果为6,-13%-7运算结果为-6。,2.3.2算术运算符及算术表达式,C语言程序设计(VisualC+6.0环境),2.自增、自减运算符,自增(+)和自减(-)运算符是单目运算符,其功能是使运算对象(变量)的值增1或减1。它们既可以作前缀运算符(位于运算对象的前面),如+i,-i;也可以作后缀运算符(位于运算对象的后面),如i+,i-。前缀和后缀运算的数据处理方法有明显的差异。对于前缀形式表示在用该表达式之前先使变量值增(减)1;对于后缀形式表示在用该表达式的值之后使n的值增(减)1。+j,-j在使用j之前,先使j的值加(减)1。j+,j在使用j之后,使j的值加(减)1。,在【例2.2】中“inti=3;printf(i=%dn,i+);”,i+是后缀形式,则先计算表达式的值,其值为当前i值,因此,输出i=3,然后使i自增1,i值为4。所以,语句“printf(i=%dn,i);”输出的结果是i=4。,返回本节目录,自增或自减运算符在使用时,需要注意以下几点:(1)运算符的操作对象,只能是变量,而不能作用于常量或表达式。运算符的优先级高于基本算术运算符,结合性是“自右向左”右结合。(2)i+,遵照右结合原则,它相当于-(i+),而不相当于(-i)+形式。,2.3.3关系运算符及关系表达式,C语言程序设计(VisualC+6.0环境),关系运算符是对两个操作对象进行大小比较的运算符,是逻辑运算的一种简单形式。用关系运算符将两个表达式连接起来的符合C语法规则的式子称为关系表达式。关系表达式的运算结果是一个逻辑值,即“真”或“假”。在C语言中关系运算结果为真,以整数“1”表示,结果为假,以整数“0”表示。C语言中的关系运算符共有六种,它们是:,=b?a:b;d=ab值为0,a0?b:-b),功能是将b的绝对值赋给a。(2)条件运算符结合性是右结合。如b0?1:b0?1:(bb?a:b”,先计算ab值为假,则条件表达式值取b的值为7。因此,c值为7。,返回本节目录,C语言允许在赋值运算符“=”之前加上其他运算符,构成复合运算符。在“=”之前加上算术运算符,则构成算术复合赋值运算符;在“=”之前加上位运算符,则构成位复合赋值运算符。象+=、-=、*=等。使用如,a+=b-c等价于a=a+(b-c),a%=b-c等价于a=a%(b-c)。,2.3.6赋值运算符及赋值表达式,C语言程序设计(VisualC+6.0环境),赋值运算符包括简单赋值运算符和复合赋值运算符,复合赋值运算符又包括算术复合赋值运算和位复合赋值运算符(位运算在第8章介绍)。由赋值运算符将操作对象连接起来符合C语法规则的式子称为赋值表达式。1.简单赋值运算符及其表达式2.简单赋值运算符及其表达式,赋值运算符是“=”,其作用是将赋值运算符右侧的表达式的值赋给其左侧的变量。在【例2.2】程序实例中“i=3,a=5,b=7;c=ab?a:b;d=ab?a:b;相当于a=(b=(c=(ab?a:b);,值得注意的是:赋值运算符运算对象中的左侧对象一定是变量。如:a=b-c=5;相当于a=(b-c)=5);,由于表达式中出现将数值5赋给b-c表达式,因此,该表达式是非法的。,返回本节目录,2.3.7逗号运算符及逗号表达式,C语言程序设计(VisualC+6.0环境),逗号运算符是“,”,它的优先级低于赋值运算符,是左结合性。用逗号运算符将若干个表达式连接成一个逗号表达式。一般形式如下:表达式1,表达式2,表达式n,逗号表达式的操作过程是:先计算表达式1,再计算表达式2,最后再计算机表达式n,而逗号表达式的值为最右边表达式n的值。如:a=4.5,b=6.4,34.5-20.1,a-b,该逗号运算表达式,它由四个表达式结合而成,从左向右依次计算,逗号表达式的值为a-b的值,即-1.9。在【例2.2】程序实例中“d=(c,d=c);”是将逗号表达式c,d=c的值赋给变量d。值得注意的是,逗号运算符是C语言所有运算符中优先级最低。如:a=10,20;不同于a=(10,20);,前者a的值为10,表达式的值为20,后者a的值为20,表达式的值也为20。,返回本节目录,2.3.8求字节运算符,C语言程序设计(VisualC+6.0环境),C求字节运算符是sizeof,它用于计算变量或某种类型的量在内存中所占的字节数。用法有两种:1.sizeof表达式2.sizeof(类型名),功能是计算出表达式计算结果所占用内存的字节数。如:在【例2.1】程序实例中“printf(”int:%d,short:%d,char:%d,float:%d,double:%dn“,sizeof(a),sizeof(r),sizeof(c),sizeof(pi),sizeof(s);”就是输出变量a,r,c,pi,s所占的内存字节数。,功能是计算出某种类型的量存储时所占用内存的字节数。如:sizeof(float)计算单精度实型数据在内存中所占的字节数,结果为4。,返回本节目录,强制类型转换是指通过强制类型转换运算符,将表达式的类型强制转换为所指定的类型。强制类型转换的一般形式为:(数据类型)操作数或数据类型(操作数)功能是将操作数的值强制转换成指定的数据类型。如:int(120.4*7)是将120.4*7值转换成int型数据,表达式的值为842。值得注意的是,数据类型转换是对操作数的值进行转换,并不改变操作数中变量本身的数据类型。,2.3.9类型转换,C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学前班认识人民币课件
- 学写留言条课件使用
- 2025版高性能混凝土搅拌站租赁与材料采购合同
- 二零二五年度高端住宅房地产分销管理服务协议
- 二零二五年度车辆购置贷款第三方担保协议
- 二零二五年度夫妻离婚房产评估与交易协议书
- 二零二五年度智慧社区房产广告设计与居民生活服务合同
- 2025版跨境电商进口货物买卖协议书
- 二零二五年度个人艺术品购买借款担保协议
- 二零二五版CAD技术员项目管理与劳务合同
- 2025年匹克球裁判试题及答案
- 2025秋苏教版科学三年级上册教学设计(附目录)
- 2025国家能源投资集团有限责任公司审计中心社会招聘12人笔试参考题库附带答案详解(10套)
- 智慧校园建设“十五五”发展规划
- 物理学与人类文明(绪论)课件
- 《圆的周长》说课ppt
- 2023年临沧市市级单位遴选(选调)考试题库及答案
- 2017版小学科学课程标准思维导图
- 第十一章-异常分娩-1产力异常
- 建设工程质量检测见证取样员手册
- 公司介绍-校园招聘-北汽
评论
0/150
提交评论