动后,指针所指向的内存单元也产生变化。 如:int tr1; int *ptr=&tr1; ptr++; 3. 关系运算 指针之间可以进行比较,如果两个指针比较结果相同,说明它们指向的是同一个变量。 四、指针和一维数组的关系 指针经常与一维数组配合使用,这样能够非常方便的对数组进行操作。 int num[3]={10,20,30}; int *p; p=&num[0]; p++的作用是使指针指向下一个元素,(*p)++的作用是使指针所指向的那个元素自增1。如果将(*p)++的括号去掉,程序的最后输出结果将会怎么样呢? 五、指针和字符串的关系 使用指针操作字符串非常的方便。有如下语句: char *p=”BeiJing”; 指针p指向字符串BeiJing,那么如果要将该字符串输出怎么操作? 语句 cout<<*p< char *p=”BeiJing”; void *n; n=p; cout< 22 四川警安职业学院标准教案纸 课程名称 授课时间 教学目标 第五章 函数 第7讲 函数的概念、调用及参数 09.4.6 地点 六多媒体 任课教师 人数 53人 授课班级 07计信 .掌握函数的概念、定义和调用方法;理解C++函数参数传递的方法,掌握函数参数值传递的过程。掌握函数递归调用,理解递归调用的过程。 函数的调用方法、形参和实参的概念,参数传递, 递归函数的编写和调用。 参数传递中的值传递,地址传递;递归函数的编写和调用。 2节 教学方法 讲授法、演示法、教学手段 多媒体教学 实践操作法 教学重点 教学难点 教学时数 教学内容: 一、 函数的定义 [类型说明符] 函数名([形式参数表] ) {函数体 [return 合适类型数值]} 1、类型规定了函数返回值的类型,返回为整形时可省略;若没有返回值,可定义其类型为空。 2、函数名是用户给函数取的名字 3、形参表的一般格式为: <类型> <形参名1>,<类型> <形参名2>…可省略。 4、{}括起来的部分是函数体,定义了函数需要完成的具体操作,当函数体为空时,称为空函数。 5、C++对形参的个数没有限制,可以是一个参数,也可以是若干个参数。 例:已给某三角形的三边长,求该三角形的面积 double area(double a,double b,double c) {double l,s; l=(a+b+c)/2; s=sqrt(l*(l-a)*(l-b)*(l-c)); // sqrt是开平方根函数 23 return(s);} 二、函数的调用 1、函数调用三种方式 (1)函数调用的一般格式: 函数名([实际参数表]); 实参表的一般格式: 实参1,实参2,… (2)函数表达式,要求函数有确定的返回值。 (3)函数参数。函数作为一个参数的实参。如 m=max(a,max(a,b)); 2、函数的递归调用和嵌套调用 函数的递归调用是指一个函数在定义它的函数体内,直接或间接地调用它自身。在递归调用中,调用函数又是被调用函数,函数将直接或间接的反复调用其自身,每调用一层就进入新的一层。 关键: (1)、递归停止条件 (2)、递归公式 ①直接递归调用:函数体中直接调用该函数本身 计算n! #include 24 ②间接递归调用 即在函数f1的定义过程中调用了函数f2,而在函数f2的定义过程中又函数了f1函数。 int func1(int a) { int b; …… b=func2(a+1); //func1( )函数调用func2( )函数,间接递归 …… return(b);} int func2(int c) { int d; …… d=func1(c-1); //func2( )函数调用func1( )函数,间接递归 …… return(d);} ③函数的嵌套调用 C++中不能嵌套定义函数,但可以嵌套调用函数。 三、函数调用中的参数传递 1、参数传递方式 ①传值方式: 用变量或表达式作为实参的,属于传值调用。 实参值传递给形参,形参变化,实参不变。 ②传地址方式(指针和数组): 用数组名或地址作为实参的,属于地址传递。 实参和形参此时同时指向同一存储单元。实参变化,形参变化。 ③传引用方式 形参即实参别名,实参变化,形参变化。 2、函数的形参和实参具有以下特点: ①形参变量只有在函数被调用时才分配内存单元,在函数调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部才有效。 函数调用结束返回主调函数后则不能再使用该形参变量。 ②实参可以是常量、变量、表达式、函数调用等,无论实参是何种类型,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此 25
C++面向对象程序设计标准教案(5)
2019-04-23 10:13
C++面向对象程序设计标准教案(5).doc
将本文的Word文档下载到电脑
下载失败或者文档不完整,请联系客服人员解决!