




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Windows程序设计,2000.9,第二章C+数据操作基础自学:关键字,标识符,基本数据类型,数据类型转换,基本运算,自定义数据类型。,一些说明:1.C+程序进行输入和输出的操作方法#includeintmain()intx,y;/定义两个整型变量cinxy;/键盘输入变量值cout“x=”xendl“y=”y”和输出操作符“”都在头文件iostream.h中被声明。,2.标识符和关键字C+语言中,标识符大小写敏感。(Sun,sun)关键字是特殊的标识符,不能用作变量、常量等的名称。,3.基本数据类型_intnvoid注意每种数据类型的取值范围。,4.基本运算逻辑运算部分,inta=5,b=8;c=a+b;c=(float)a/(float)b;c=float(a)/float(b);printf(“a=%fb=%fn”,a,b);/errorprintf(“a=%fb=%fn”,float(a),float(b);,6.枚举与联合枚举:enumcolorred,green,blue,white,yellowmy_color;enuncoloryour_color;colorhis_color;,枚举类型中文字量标识符的作用域;,文字量隐含地具有一个整数常量值;intI=blue;,不能用整数值来初始化或更新枚举类型的对象;my_color=2;/errormy_color=blue;,不能对枚举类型的对象进行算术或逻辑运算。,联合:联合类型的对象中所有数据成员的存储开始于同一位置,联合类型的对象所需的最大存储空间由数据成员中需要存储空间最大的数据成员决定;,两个类型的对象所占用的存储空间:sizeof(X)为6个字节,sizeof(Y)为4个字节。,例:classXunionYpublic:public:inta;inta;doubled;doubled;,联合是为了将一些结构上有细微差异的对象作为一类对象对待。但在表达细微差异方面,如不使用联合,而使用继承结构,将会得到更加合理的程序。,参考书13.5,3.810参考书2第3、4、7章2.1C+存储类,auto存储类:作用域局部于某个程序范围;采用堆栈方式分配内存空间;auto关键字可省略。autoint;int;,register存储类:将所声明的变量放入寄存器内,目的是提高运行速度。若系统寄存器已被占用,则自动转换为auto变量使用。registerint;,extern存储类:外部变量,作用域是所有的函数和程序段,一般用于在函数之间传递数据。参考书1p61。,static存储类:是一种局部变量,和auto最大的不同是静态变量在内存中以固定地址存放。因此,只要程序还在执行,它就不会随着声明程序段的结束而消失。参考书1p62。,#includevoidfun()intI=0;staticints_I=0;cout“I=“Iendl;cout“s_I=“s_I=0)?a:-a,注意:表达式1、2、3的数据类型不能是void类型。,switch(变量名)case值1:语句序列1;break;case值2:语句序列2;break;default:语句序列n;,2.2.2循环语句,for循环:for(exp1;exp2;exp3)statement;.,while循环:while(expression),dowhile循环:dostatement;.while(expression);,三种循环都可以嵌套。,for(exp1;exp2;exp3)statement;.,等价于:exp1;while(exp2)statement;exp3;,例:intsum=0;for(intI=1;I=10;I+)sum+=I;,2.2.3转移语句,break语句:强制退出循环及中断case语句,直接执行循环体后的语句。,continue语句:不完全退出循环,而是使循环重新回到测试位置,并忽略此语句至循环结束前的语句序列。,goto语句:无条件转移,只限在同一程序段内转换,不能跳到另一函数或程序内。,2.3数组、字符串和指针2.3.1数组1.数组对象声明数据类型标识符常量表达式,2.说明(1)数组中的每个元素具有相同数据类型;inta5;,(2)访问数组元素时,使用下标值指明,第一个元素下标值为0;a2=12;,(3)数组内各元素在内存中连续存放;,(4)数组在声明的同时可以赋初值,初值个数小于等于数组元素个数,若小于,未提供初值的元素使用缺省值初始化;若等于,数组长度可以不指定。inta5=1,2;floatb=1.0,2.5,3.2,4.9;,(5)多维数组的每一维大小都用单独括起,赋初值时按行赋给,初值个数同样小于等于每一维的元素个数。例:inta3=2,3,4,3,4,5,1;intb32=0,1,2;intc2=1,2,2,3,3,4;/error,只有外层数组的元素个数可以省略,(6)使用sizeof函数求数组元素个数inta5=2,3,5;floatb3=1.,2.,3.,2,3;intaNum=sizeof(a)/sizeof(int);intbNum=sizeof(b)/sizeof(float3);,3.使用数组时的注意事项(1)两个数组对象之间不能相互赋值;inta5,b5;a=b;/error,(2)数组类型的操作数不能作为左值使用;a+;/error,(3)数组不能作为参数在函数之间进行参数传递,只能通过向函数传递指向数组对象的第一个元素对象的指针来达到传递数组的效果。,(4)C+运行系统不能对数组访问的越界问题(下标值不正确)进行检查。,2.3.2字符串与字符数组的关系:字符串是由一串字符组成的数组,但字符串的末尾一定是“0”,而字符数组则不一定。,与字符串有关的标准函数:gets,putsfgets,fputssprintfstrcpy(str1,str2)strcat(str1,str2)strcmp(str1,str2)strlen(str),2.3.3指针1.定义:包含另一变量内存地址的变量。,3.指针与数组的关系数组是指针的另一种表示法。数组的名字实际就是数组的起始地址。intarr2=0,1;arr1和*(arr+1)是完全一致的。,2.声明指针在使用前需进行声明,声明格式为:数据类型*变量;或数据类型*变量;,4.对指针值的操作,例:#includeintmain()inta=1,2,3,4,5;int*IntPtr(,(1)可以对指针值进行算术和关系操作;,(2)只能在同类型的指针值之间进行关系比较操作,而且被比较的两个指针值指向同一数组对象的元素对象;,(3)一个指针值可以与整数0进行相等或不等关系操作,5.“int*p;p=,说明:“p=newint;/deletep;,两种内存分配方式:堆栈分配和堆内空间分配。,标准C用malloc和free函数在堆内分配内存块和释放内存块。,(2)当表达式中出现一个数组类型的操作数时,这个操作数被自动地强制为指向该操作数所标识的数组对象的第一个元素对象的指针值。下面两个赋值表达式是等价的:,inta=1,2,3;int*p;p=a;p=,7.使用指针时的注意事项(1)在程序中注意保持指针值的确定性,避免出现悬空指针。因此在声明一个指针时,应立即对它进行初始化或赋初值;,2.4函数2.4.1函数定义函数是由功能相关的语句序列所组成的独立模块,是结构化程序的基本结构。,函数类型函数名数据类型参数1,函数体(语句序列),说明:函数类型指的是函数的返回值类型;若未设置函数类型,系统会自动将其假设为整数类型;若不希望函数返回任何值,就将函数类型设置为void。,2.4.2函数调用当一个函数定义有形参时,在进行函数调用时,必须提供与形参个数、类型相同的实参。在C+中,有两种参数传递机制将实参的值传递给形参:值传递(值调用)和引用传递(引用调用)。,1.值传递在这种机制中,实参的值被拷贝到由相应形参名字所标识的对象中。在函数内部对形参的访问或更新都是是对这个对象的访问或更新。实参本身的值在调用前后和调用过程中都不发生变化。,intdouble(inta)a*=2;cout“a=“aendl;returna;,#includevoidmain()intb=10;double(b);cout“b=“b;,运行结果:a=20b=10,2.引用传递若希望通过函数调用改变实参的值,就必须采用引用传递机制。关于引用的具体含义及使用要点将在3.7节中讲解。,2.4.3函数的其他特性,1.缺省参数函数声明时可以为一个或多个参数指定缺省参数值。voiddelay(intx,inty=100);,当进行函数调用时,编译器按从左至右的顺序将实参与形参结合,若未指定足够的实参,则编译器按同样的顺序用函数声明中的缺省值来补足所缺少的实参。delay(5);等价于delay(5,100);,若函数有多个参数,那么所有指定了缺省值的参数必须排在参数序列的最右边。voidf(intx,inty=0,intz);/errorf(2,4);,2.递归函数在函数内部直接或间接地调用函数本身,称为递归调用。递归调用要注意设置出口,避免死循环。,当重载的函数带有缺省参数时,必须注意避免错误声明。voidf(intx,inty=0);voidf(intx);/errorf(5);,2.4.4函数重载在C+中,允许两个或两个以上的函数采用相同的名字,只要使用不同类型、不同数目的参数或不同的返回值,编译器便知道在什么情况下该调用哪个函数,这就叫函数重载。,例:intdoubleFun(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 戒烟考试题及答案
- 检验科传染病疫情报告制度、复检制度
- 急救理论知识模拟题(含参考答案)
- 生态系统韧性分析-洞察及研究
- 2025版实体店知识产权保护与纠纷处理合作协议书
- 2025年二手车维修保养及转让服务合同
- 2025版商铺租赁返租共享经济合作协议
- 2025年度电商用户增长与留存策略外包合同
- 2025版食堂设施设备维护保养服务协议
- 2025年远程医疗在偏远地区医疗服务中的公共卫生事件应对策略研究
- TCCEAS001-2022建设项目工程总承包计价规范
- 大学普通化学-课件文档
- 履带吊安装、拆除安全交底
- 2-2《大战中的插曲》课件28张-统编版高中语文选择性必修上册
- 《甘肃地理》完整版教学课件-整套教程电子讲义(最全最新)
- 《专题地图设计与编制实验》课程教学大纲
- DB37T 4010-2020 含阿胶的食品中阿胶含量的测定方法
- 《植物生理学》课件第五章+同化物的运输
- 质量成长记-过程模式作业表
- 漆黑的魅影-精灵分布图鉴
- 小学语文分层作业设计
评论
0/150
提交评论