C++面向对象程序设计标准教案(共36页).doc

上传人:飞****2 文档编号:14193920 上传时间:2022-05-03 格式:DOC 页数:36 大小:219.50KB
返回 下载 相关 举报
C++面向对象程序设计标准教案(共36页).doc_第1页
第1页 / 共36页
C++面向对象程序设计标准教案(共36页).doc_第2页
第2页 / 共36页
点击查看更多>>
资源描述

《C++面向对象程序设计标准教案(共36页).doc》由会员分享,可在线阅读,更多相关《C++面向对象程序设计标准教案(共36页).doc(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上四川警安职业学院标准教案纸课程名称第一章 C+程序设计基础第1讲、C+程序设计基础任课教师 授课时间09.02.23地点六多媒体授课班级06计信人数53人教学目标对面向对象的程序设计的思想有一个总体认识,掌握面向对象的基本概念、对象和类的概念,理解对象的特性;掌握C+语言的基本概念。 教学重点对象和类的概念,掌握对象的封装性、继承性和多态性的这三大对象的特征。熟练掌握类和对象的关系。教学难点对象的概念,封闭、继承和多态性的理解。教学时数2节教学方法讲授法、演示法、教学手段多媒体教学教学内容:一、 C+语言简介1、C+语言的发展史 C+源于C语言,而C语言是在B语言的基

2、础上发展起来的。 1972年美国贝尔实验室的Dennis M.Ritchie为克服B语言的诸多不足,在B语言的基础上重新设计了一种语言,取其第二字母C,故称为C语言。 1980年贝尔实验室的Bjarne Stroustrup对C语言进行了扩充,推出了“带类的C”,多次修改后起名为C+。以后又经过不断的改进,发展成为今 天的C+。 2、C+的编程模式结构化的程序设计 面向对象程序设计 3、C+语言的特点C+语言继承了C语言的特点:丰富的运算符和数据类型、结构化的程序设计方法、高效的机器代码、良好的可移植性。 C+语言扩展了C语言的功能,增加了面向对象机制。与C语言相比,C+语言的错误检查机制强。

3、 二、面向对象方法的基本概念 1、对象 按照面向对象的观点,对象(object)是现实世界中各种各样实际存在的事物,包括有形的对象和无形的对象。对象是构成世界的一个独立单位,它具有自己特定的属性(attribute)(如大小、形状和重量等)和行为(behavior)(如生长、行走、转弯和运算等),人们通过对象的属性和行为来认识对象。 在计算机科学中,对象是系统中用来描述客观事物的一个实体,它是构成系统的基本单位,而系统可以看作是由一系列相互作用的对象组成。 2、类 类是面向对象语言必需提供的用户定义的数据类型,它将具有相同状态、操作和访问机制的多个对象抽象成为一个对象类。 类可用公式表示: 类

4、=数据结构+对数据进行操作的函数一个对象又称作类的一个实例(instance)。 3、消息 面向对象方法提供了对象之间的通信机制。程序由一些相互作用的对象(类)构成,对象之间的交互通过发送消息来实现。程序通过执行对象的各种行为方法,来改变对象的状态(属性数据),从而使该对象发生某些事件。当对象发生某些事件时,通常需向其他相关对象发送消息,请求它们作出一些处理。 消息是向某对象请求服务的一种表达方法。对象内有方法和数据,外部的用户或对象对该对象提出的服务请求,可以称为向该对象发送了消息。 4、对象的特征 继承 继承是面向对象语言的另一特性。类与类之间可以组成继承层次,一个类的定义(子类)可以定义

5、在另一个已定义类(父类)的基础上。子类可以继承父类中的属性和操作,也可以定义自己的属性和操作。 封装 封装有两个涵义:第一个涵义是,把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。第二个涵义也称作“信息隐蔽”,即尽可能隐蔽对象的内部细节,对外形成一个边界(或者说形成一道屏障),只保留有限的对外接口使之与外部发生联系。 多态性 多态性是指一个接口名称具有多种功能三、 类的定义 C+定义类的基本形式如下:class private: ;public:;protected:;private: 只能由该类中的方法访问,不能被该类的对象访问. protected: 可以被该类

6、中的方法和其友元函数访问,但不能被该类的对象访问 public: 可以被该类中的方法和其友元函数访问,也可以由该类的对象访问 四、变量和常量 常量的值是始终不变的,而变量的值是可以被改变的。 常量和变量的主要区别在于:常量不占内存空间,不能为常量赋值;而变量需要占内存空间,可以给变量赋不同的值。 五、函数 函数是C+程序的构成基础。C+程序都是由一个个函数所组成的。 C+函数有三种:主函数(即main( )函数)、C+提供的库函数和自定义函数。六、输入和输出 程序从外部设备获得数据称为输入(input),反之,将程序中的数据送到外部设备如屏幕、打印机等称为程序的输出(output)。 1、标准

7、输出语句cout ”lets learn to write a C+ Program.”;cout endl;cout”chicken hen cock “endl;cout” ” chicken” ”hen” ”cockmyage;#includevoid main(void)int myage;cout myage;/输入年龄(一个整数)coutmyageendl;七、预处理命令 #include 预处理命令以位于行首的符号“#”开始,C+提供的预处理有宏定义命令、文件包含命令和条件编译命令三种。 八、命名 标识符是由程序员定义的字符串,用以命名程序中变量名、函数名、常量名和对象名等。标识

8、符由字母、数字和下划线“_”组成。第一个字符只能以字母或下划线开头,而且不能是数字。 与有些语言不同,C+编译器把大写和小写字母当作不同的字符,这个特征称为“大小写敏感”。 九、注释 注释是用来帮助阅读、理解及维护程序。在编译时,注释部分被忽略,不产生目标代码。C+语言提供两种注释方式。 一种是与C兼容的多行注释,用/*和*/分界。另一种是单行注释,以“/”开头的表明本行中“/”符号后的内容是注释。 十、C+程序的运行环境 1. Turbo C+2.C+ Builder3.Dev-C+4.Visual C+ Visual C+ 6.0在项目文件管理、调试及操作的亲和力等方面上都略胜一筹。 作

9、业熟练VC+的开发环境。教学反馈四川警安职业学院标准教案纸课程名称第二章 数据类型和表达式第2讲 数据类型和表达式任课教师 授课时间09.3.02地点六多媒体授课班级07信管人数53人教学目标掌握数据类型的分类、适用范围及表示方法;熟练掌握表达式的各种运算。教学重点数据类型的分类及其表示方法,各种运算符的运算规则教学难点数据类型之间表示方法,运算符的优先级教学时数2节教学方法讲授法、演示法、实践操作法教学手段多媒体教学教学内容:一、数据类型在C+中,数据类型分为两大类:基本数据类型和构造数据类型。构造数据类型从基本数据类型“演变”而来,不同的演变方法构成了不同的数据类型。 (一)整形 C+的整

10、型数一般占用四个字节,也可能是两个字节(取决与具体的计算机系统)。整型还可以通过加修饰符来改变它的长度。1、整形的分类 (1)基本型:用int来标识(2)短整型:用short int 标识,或简写成short(3)长整型:用long int 标识,或简写成long(4)无符号型:用unsigned标识。相反,不加unsigned标识,则默认是有符号的(singed)。无符号型又可与上述三种类型匹配构成以下三种形式:无符号基本型:用unsigned int或unsigned标识无符号短整型:用unsigned short标识无符号长整型:用unsigned long标识2、整形常量 整型常量即整

11、常数。C+中的整数可以用十进制、八进制和十六进制来表示。3、变量的定义变量定义的一般格式为:=,=,;例:int a,b,c; /定义a,b,c为整型变量long x1,y2; /定义x1,y2为长整型变量unsigned a1,b1; /定义a1,b1为无符号整型变量short x,y,z=6; /定义短整型变量x,y,z,对z 进行了初始化,值为6注意:允许在一个类型说明符后,定义多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。最后一个变量名之后必须以“;”号结尾。允许在定义变量时同时对变量赋值以进行变量的初始化。变量定义必须放在变量使用之前,即“先定

12、义,后使用”。在函数内一般放在函数体的开头部分。 (二)实型分类 1、单精度型:用float来标识,占4个字节2、双精度型:用double来标识,占8个字节。3、长精度型:用long double来标识,占10个字节 实型变量的定义:实型变量定义的格式和规则与整型相同(三)字符型 1、字符型常量:普通字符;转义字符 2、字符型变量(1)字符变量用来存储字符常量,即单个字符。(2)字符变量的类型说明符是char。字符变量类型定义的格式和书写规则都与整型变量相同。 3、字符串常量 字符串常量是用一对双引号括起来的字符序列。(四)逻辑型 逻辑型也称布尔型,它用bool来标识。逻辑型常量只有两个值:即

13、true(真)和false(假),在C+中逻辑真是用非0来表示,而运算结果为逻辑真,是用数值1来表示,而对逻辑假,不管是参加运算,还是运算结果,都是用数值0来表示。(五)枚举型 枚举类型的定义:格式:enum 枚举类型名 枚举元素1, 枚举元素2, ,枚举元素n;定义语句以“;”结束,且各枚举元素不能同名;枚举类型名是用户自定义的标识符;该语句定义了一个枚举类型,且枚举类型中含有n个枚举常量,每个枚举常量均有值。如果不指定枚举元素的起始值,将自动从0开始为各个枚举元素设置初值,后面的枚举元素依次增1。如果指定某个枚举元素的值,则下一个枚举元素如果没有指定值,就是上一个枚举元素值加1。 二、表达

14、式l 表达式是描述数据加工的一种方法。它是由操作对象(常量、变量、函数等)和运算符组成的式子。l 表达式的类型由运算符和操作对象的类型决定。 l 表达式的求值是按运算符的优先级和结合性所规定的操作顺序进行。l 优先级是指在相邻的两种运算符中,应先执行哪一种。l 结合性是指两个同优先级的运算符相邻时,应按从左向右的顺序运算,还是按从右向左的顺序运算。(一)运算符根据操作数的个数可将运算符分为单目、双目和三目3类运算符。本节我们只讨论算术运算符、赋值运算符、自增自减运算符、关系运算符及逻辑运算符等基本运算符1、算术运算符 +(加法)、-(减法或负号)、*(乘法)、/(除法)、%(求余数)。 算术表

15、达式 算术表达式是由算术运算符连接的式子。2、赋值运算符赋值运算符是给变量或对象赋值,它分为基本赋值运算符和复合赋值运算符 。而最后进行赋值运算的表达式,称为赋值表达式。 简单赋值运算符基本赋值操作“=”, 是一种双目运算符,作用是将右操作数的值传递给左操作数。它的一般形式为: =复合赋值运算符3、自增自减运算符4、关系运算符5、逻辑运算符(二)运算符的优先级和综合性 表达式的操作一般遵循以下规则: 括号内的表达式优先计算;无括号的,按优先级从高到低进行计算; 若运算符的优先级相同,按结合性进行计算。 总结:1、五种算术运算符有优先级:其中乘()、除()、求余()优先于加()和减(),当然也可

16、用括号来改变其优先级,它们的结合性是自左向右。 2、自增自减运算符的优先级优于双目算术运算符,与+(正)和-(负)同级且它们操作顺序自右向左 3、算术运算符优先于关系运算符;、=优先于= =、!=;、=同级;= =、!=也是同级,它们的结合性自左向右 4、逻辑运算符的优先级顺序是:! & | 5、和其它运算符的优先级关系:! 双目算术运算符关系运算符&|。作 业教学反馈四川警安职业学院标准教案纸课程名称第三章 控制结构第3讲 顺序结构、选择结构任课教师 授课时间09.3.9地点六多媒体授课班级06计信人数53人教学目标掌握+语句的基本知识和三种基本程序结构;掌握构成选择结构的if,if-els

17、e和switch语句的使用教学重点if,if-else和switch语句的使用教学难点if,if-else和switch语句的使用教学时数2节教学方法讲授法、实践操作法教学手段多媒体教学教学内容:语句概述和程序结构 C+语言中的语句可分为空语句、说明语句、复合语句、表达式语句、函数调用语句和程序控制语句。一、语句概述1. 空语句 只由一个分号所构成的语句,它不执行任何动作。 例如:; ,/一般该语句是用来指明被转向的控制点或在特殊情况下作为循环语句的循环体。/2. 说明语句 对数据结构定义和描述、对变量的定义性说明、给变量赋初值的语句。在程序执行过程中,不对数据进行操作的执行,仅向编译程序提供

18、一些信息。说明语句可放在函数中允许出现语句的任何位置,也可以放在函数定义之外。例如:int x,y;/定义整形变量x,yfloat a,b=3.5; /定义浮点型变量a,b,并给b赋初值3.53. 表达式语句由表达式组成的语句,由一个表达式接一个分号组成。一般是描述算术运算、逻辑运算等。例如:a=a+3/表达式4. 函数调用语句在函数调用后加一个分号所构成的语句,称为函数调用语句。例如:sin(x);5. 程序控制语句 完成一定控制功能的语句,用于控制程序中语句的执行条件和执行顺序。例如:if (ab) c=a-b; /若ab,则c=a-belse c=b-a; /否则c=b-a6. 复合语句

19、由一对花括号“ ”括起来的若干语句的组合,在意义上是独立的,被视为单独一个语句。 凡是能用单独一个语句的地方,都能换用复合语句。复合语句的左、右花括号标明了复合语句的开始和结束,在右花括号的后面不需要再加分号。例如:if(ab)max=a; cout a;/复合语句elsemax=b; cout b;/复合语句else max=b; cout b;/复合语句二、程序结构 一个程序或函数从它的执行行为的角度来分析,都是由三种基本结构组合而成的,即顺序结构、选择结构和循环结构。1.顺序结构 按语句的先后顺序依次执行,这种结构称为顺序结构。 2.选择结构 根据某个条件,选择执行某一个语句。 3.循环

20、结构 根据某种条件,重复执行某一语句或若干个语句。三、选择结构 选择结构也称为条件分支结构。其执行流程的方式是:根据给定的条件,选择执行两个或两个以上分支程序段中的某一个分支程序段。C+中可由if语句和switch语句来实现这种选择结构。 1、条件语句 语句表达式语句是条件语句之一,它实现的功能是,根据给定的条件,决定执行两个分支中的一个分支。 单选条件语句if ()语句 如果内嵌语句有多个操作语句,用“”将几个语句括起来作为一个复合语句二选一条件语句一般格式为: if () 语句1 else 语句2嵌套的条件语句 条件语句中,内嵌的语句可以是任一C+的语句,当然也可以是条件语句。当条件语句的

21、内嵌语句是条件语句时,称为嵌套的条件语句。一般格式为:if ()语句1else if ()语句2else if ()语句3else 语句n2条件运算符 ? :执行过程:先求出表达式1的值,若其为非0,则求出表达式2的值(不求表达式3的值),把该值作为运算的结果;否则求出表达式3的值(不求表达式2的值),把它作为运算的结果。3开关语句 开关语句是switch语句,它也称为多分支选择语句。它可以根据给定的条件,从多个分支中选择执行一个分支的语句。格式:switch()case : case : case : default :语句n+1;执行过程:先计算条件表达式的值,从上向下依次与case后面的

22、常量表达式比较,若与某一常量表达式的值相等,就转去执行该case后的语句,一直执行到break语句或开关语句的右花括号为止。若无相等的值,有default分支,就执行该分支后的语句,否则什么也不执行。作 业教学反馈四川警安职业学院标准教案纸课程名称第三章 控制结构第4讲 循环结构任课教师 授课时间09.3.16地点六多媒体授课班级06计信人数53人教学目标掌握构成循环结构的for,while和do.while语句的使用;能利用三种基本结构解决实际问题。教学重点for,while和do.while结构的执行过程,利用前面的顺序结构,分支结构和这讲的循环结构解决具体的问题。教学难点for,whil

23、e和do.while循环中对于循环体执行条件的判断。教学时数2节教学方法讲授法、实践操作法教学手段多媒体教学教学内容:循环结构 :在进行程序设计时,常常会有一些需要重复执行的操作,可通过循环结构来实现这种重复执行的操作。例如,求s=1+2+3+100的和,在程序中不可能列出100个数再相加。一for语句 格式:for(;) 语句其中:三个表达式可以是C+中的任一符合语法规则的表达式;“语句”可以是任意C+的语句,是for的内嵌语句,把它称为循环体。 执行过程:1)先求出表达式1的值;2)求出表达式2的值,若表达式2的值为非0,则转去(3),否则转去(4);3)执行语句,然后求表达式3的值,转去

24、(2);4)结束循环,执行for的下一个语句。 说明:(1)从for语句的执行过程可知,语句执行时,先判断循环条件,若条件满足,才执行循环体,所以有可能循环体一次也不执行。(2)for语句的三个表达式可以是任意表达式,也可以是逗号表达式。(3)表达式之间以分号间隔;三个表达式可以部分省略或全部省略,但分号不能省略。例如:二、while语句 一般格式为:while () 语句其中:表达式是C+中的任意的表达式;语句可以是任意语句,也可以是复合语句,是while的内嵌语句,把它称为循环体。 执行过程:1)先求出表达式的值;2)当表达式的值为非0,转去(3),否则转去(4);3)执行循环体语句;4)

25、结束循环,执行while的下一个语句。三、dowhile语句 一般格式为:do语句while (); 其中表达式是C+中的符合语法规则的表达式;语句可以是任意C+的语句,是内嵌语句,把它称为循环体。执行过程:1)执行循环体语句; 2)求表达式的值;3)若表达式的值为非0,则转去(1),否则转去(4);4)结束循环,执行dowhile的下一个语句。四、循环的嵌套及应用作 业教学反馈四川警安职业学院标准教案纸课程名称第四章 数组和指针第5讲 一维数组和二维数组任课教师 授课时间09.3.23地点六多媒体授课班级07计信人数53人教学目标掌握一维数组的定义、赋初值以及简单应用; 掌握一维字符数组和字

26、符串之间的关系,了解字符串的常用操作; 掌握二维数组的定义、赋初值,了解其应用。 教学重点一维数组和二维数组的定义,相关操作和应用;字符串的操作。 教学难点一维数组、二维数组赋初值、应用;字符串与字符数组的之间的关系教学时数2节教学方法讲授法、演示法、实践操作法教学手段多媒体教学教学内容:一、一维数组 (一)一维数组的定义和初始化 1、数组的定义:数组是一组元素的集合,这些元素具有相同的数据类型,并且这些元素在计算机内存中是被存放在相邻的内存单元中的,这些元素不需要使用不同的变量名来定义,它们共享同一个名称,并且通过它们在数组中的位置加以区分。这个共享的名称叫做数组名。2、一维数组的定义: 在

27、使用数组前必须进行声明,定义一维数组的格式如下: ; 例如:要定义一个整型数组用来存放全班30个学生的成绩。 int cj30;/此数组包含30 个元素,这30个元素分别为:cj0、cj1、cj29,数据类型都为整型。/ 3、 初始化 当我们声明了一个数组之后,相当于在内存中开辟了一串连续的内存单元,接下来就要往这些内存单元中存储数据,我们把这一过程称之为赋值。如果是第一次进行赋值,则称之为初始化。 给数组赋值有下面几种方法:(1)可以给每个数组元素单独赋值: cj0=50; /可以直接赋以一具体的数据cj1=cj0; /可以把其它数组元素的值赋值给该数组元素 (2)可以对整个数组赋值如:fl

28、oat money 3=12.5,34.6,4.8;或者float money 3; money 3=12.5,34.6,4.8; 注意:这种赋值方法在使用时必须确保中给出的数据个数必须要小于或者等于数组的实际大小,否则将会出现错误。 在初始化时需要注意:(1)对数组赋值时,不能用一个数组对另外一个数组赋值。如:int merry3=mike3; (2)在声明数组的时候需要说明数组的大小,除非你在同一个语句中对它进行初始化 。如:int merry =1,2,3; /说明该数组有三个元素 这种情况是错误的:int merry ;4、一维数组的应用(1)一维字符数组 如果数组存放的数据属于文本,

29、我们就将这样的数组称为字符数组。 声明 一维字符数组的声明与一维整型数组的声明类似,只是将表示类型的关键字换成char,格式如下 char 数组名数组大小; 例如:char array10;代表在内存中申请10个连续的存储单元,这些存储单元用来存放字符。 赋值如:定义一个字符数组,需要存储的数据为:abcdchar name4;name0= a;name1= b;name2= c;name3= d; 也可以这样写: char name4=a, b, c, d; (2)字符串 字符串是一个以NULL(“0”)结尾的字符数组,换句话讲,如果数组以NULL结尾,那么该数组就称为字符串,简称为串。在实

30、际显示中,NULL是不可显示字符,所以不在屏幕上显示,它只表示串的结束。 字符串的声明同字符数组,只是在赋值上有所区别。 如:存储字符串mike char name5=”mike”; /字符串mike实际长度为5 或 char name =”mike”;/计算机根据实际值计算出数组长度 或 char name5;/先定义数组,在逐个赋值 name0= m; name1= i; name2= k; name3= e; name4= 0; 字符串的操作 1.字符串的输入和输出 字符串的输入和输出与一般变量的输入与输出类似,用cin和cout实现。 2. 字符串的常用函数strlen() 求字符串的

31、长度 该函数将返回字符串中实际存储的字符个数,0除外,假设一字符串为“miker”,串名为name,则语句 coutstrlen(name)endl;将得到结果5。strcpy ( ) 复制字符串要将一个字符串复制给另外一个字符串,不能采用以下这种方法:strcat()字符串的连接该函数是将一个字符串连接到另一个字符串的后面,得到一个新的字符串。如要将字符串customer连接到字符串amounts的后面,可以采用下列语句:注意:要保证前一个字符串的空间足够大,否则将得不到正确结果。strcmp() 比较字符串我们经常需要比较两个字符串,用函数strcmp( )二、二维数组 1、二维数组的定义

32、和初始化定义 一维数组在空间上,我们可以将它看作是一行或者一列,是一维的、线性的;而二维数组是包含多行多列的一个矩阵,是二维的。 声明:声明一个二维数组必须指出该数组包含的行数和列数。格式如下: 数组名行数列数; 赋值 我们可以在声明二维数组的同时给予初始化,也可以在以后进行初始化,但有一点需要注意,那就是二维数组同一维数组一样,在声明的同时需要说明大小,除非你在同一个语句中对它进行初始化,这时也须指定列数。 由于二维数组涉及多行多列,因此在对其进行赋值时和一维数组有所不同。 例:int num32= 15,32,10,21,90,7 ; 在这个例子中,中的数据位于同一行中,由于该数组有3行,

33、所以每行数据都被括起来,而所有的行都被包括在最外层的中。 也可以写成:int num 2= 15,32,10,21,90,7 ; 这时省略了行数,但列数不能省略。下面这种写法就是错的:int num = 15,32,10,21,90,7 ; /错误2、二维数组的应用作 业教学反馈四川警安职业学院标准教案纸课程名称第四章 数组和指针第6讲 指针任课教师 授课时间09.3.30地点六多媒体授课班级07计信人数53人教学目标掌握指针的定义和运算;掌握指针与一维数组、字符串的关系;掌握动态内存管理的方法。教学重点指针的运算;指针与一维数组和字符串之间的关系。教学难点指针的运算。指针与一维数组和字符串之

34、间的关系。教学时数2节教学方法讲授法、演示法、实践操作法教学手段多媒体教学教学内容:一、指针的定义和初始化1. 定义 什么是指针?举例来讲,如果将计算机的各个内存单元比作是一个一个的小抽屉的话,那么指针就是开启这些小抽屉的钥匙,换句话讲,指针就是一个指示器,它告诉程序可以在在哪块内存中找到数据。实际上,指针也是一个变量,指针中存放的是所指向的那块内存单元的地址。 指针的定义方法如下: 指针类型 *指针名; 如:int *pname; 这个声明语句起到的作用是:定义一个指针,该指针的名字为pname,它指向一个存放整型数据的存储地址。需要注意的是*并不是指针名的一部分,它的作用在于说明所定义的是

35、一个指针变量,与我们前面所讲的基本数据类型变量的定义相区别。又如:char *psize; float *ptr; 分别表示定义一个字符型指针变量和单精度指针变量。 2. 初始化 对指针进行初始化其实就是将某块内存单元的地址赋值给它,但是怎么能够知道内存单元的地址呢?&这个符号能够帮助我们取得变量的地址。如:int tr; int *ptr=&tr;也可以这样写: int tr; *ptr; ptr=&tr; 该语句定义了一个指针ptr,它指向一个整型变量,该整型变量为tr。在指针变量ptr中存放的是变量tr的地址。而*ptr指向的就是变量tr中的内容。 二、指针的类型 指针是一个变量,因此指

36、针也有相关的类型。但是和普通变量不同的是,不同数据类型的指针之间的区别不是在指针的表示上,也不在指针所持有的值上,指针的类型指的是指针所指向的数据的类型,所以指针的类型必须和所指向的变量的类型相匹配。 三、指针的运算指针也可以进行加减运算,但是和普通的整数加减运算并不相同。它允许以下这些运算:1. 赋值运算 我们可以将一个变量的地址赋值给指针,如: int tr1; int *ptr=&tr1;/注意指针的类型在此处应该为整型 指针之间也可以进行相互赋值,如: int tr1; int *ptr1,*ptr2; ptr1=&tr1; ptr2=ptr1;2. 算术运算 由于指针存储的是内存地址

37、,所以指针的算术运算针对的都是整数。最常见的算术运算是加减运算,可以对指针加1或者减1。由于指针是一个指示器,所以指针的加减运算并不仅仅是整数的加减,而在于指针所存储的内存地址变动后,指针所指向的内存单元也产生变化。如:int tr1;int *ptr=&tr1;ptr+;3. 关系运算 指针之间可以进行比较,如果两个指针比较结果相同,说明它们指向的是同一个变量。 四、指针和一维数组的关系 指针经常与一维数组配合使用,这样能够非常方便的对数组进行操作。int num3=10,20,30;int *p; p=&num0; p+的作用是使指针指向下一个元素,(*p)+的作用是使指针所指向的那个元素

38、自增1。如果将(*p)+的括号去掉,程序的最后输出结果将会怎么样呢?五、指针和字符串的关系使用指针操作字符串非常的方便。有如下语句:char *p=”BeiJing”; 指针p指向字符串BeiJing,那么如果要将该字符串输出怎么操作? 语句 cout*pendl;能够实现吗?答案是否定的,该语句运行后得到结果是:B。 语句char *p=”BeiJing”;的作用是使指针p指向字符串,而我们已经知道字符串其实是一个以0结尾的字符数组,所以指针p就是指向字符串的第一个元素,而通过cout*pendl;输出的就是字符串的第一个元素B。那要输出整个字符串怎么办呢?我们可以使用语句:coutpend

39、l; 由于在程序中使用字符串的时候,字符串会占有一个连续的空间,所以只要给出指针名即可将该指针所指向的整个字符串输出。 如果有人问如果要输出存储该字符串的内存的地址,该如何做呢?下列程序可以实现:char *p=”BeiJing”;void *n;n=p;coutn; 我们可以定义一个通用指针(void指针),该指针可以指向任何类型的数据,通过n=p;可将字符串的地址赋值给void指针n. 六、动态内存管理 所谓动态内存管理,其实就是在需要的时候申请内存,而在不需要的时候释放内存,这使得计算机的内存不会被浪费,提高使用效率。 1. 动态分配内存 使用new运算符能够在需要的时候申请内存。new

40、运算符的语法是:=new ;说明:(1)类型可以是整型、字符型或者是浮点型等。 (2)左边的指针变量的类型应该与右边的变量类型匹配。2. 内存的释放 内存使用完毕,为了节约资源需要将其释放。可以使用delete运算符将其释放。delete运算符的语法是: delete ;七、引用和初始化 什么是引用?引用就是引入了对象的一个同义词,相当于给对象取个别名,通过使用别名来引用该对象进行操作。就像古人有字、号一样。使用别名的引用的定义方法是: &别名=变量名;引用必须在定义的同时进行初始化int num=10;int &anum=num; 作 业教学反馈四川警安职业学院标准教案纸课程名称第五章 函数第7讲 函数的概念、调用及参数任课教师 授课时间09.4.6地点六多媒体授课班级07计信人数53人教学目标.掌握函数的概念、定义和调用方法;理解C+函数参数传递的方法,掌握函数参数值传递的过程。掌握函数递归

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

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