MyLecture-C(第6章 数组指针与函数综合应用)

上传人:woxinch****an2018 文档编号:44679382 上传时间:2018-06-14 格式:PPT 页数:24 大小:777.50KB
返回 下载 相关 举报
MyLecture-C(第6章  数组指针与函数综合应用)_第1页
第1页 / 共24页
MyLecture-C(第6章  数组指针与函数综合应用)_第2页
第2页 / 共24页
MyLecture-C(第6章  数组指针与函数综合应用)_第3页
第3页 / 共24页
MyLecture-C(第6章  数组指针与函数综合应用)_第4页
第4页 / 共24页
MyLecture-C(第6章  数组指针与函数综合应用)_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《MyLecture-C(第6章 数组指针与函数综合应用)》由会员分享,可在线阅读,更多相关《MyLecture-C(第6章 数组指针与函数综合应用)(24页珍藏版)》请在金锄头文库上搜索。

1、课程邮箱 : gylj_主讲 : 刘 军(副教授)电话/QQ : 15112133278/539171158:程序设计和程序设计和C C语言语言 :顺序结构程序设计顺序结构程序设计 :选择结构程序设计选择结构程序设计 :循环结构程序设计循环结构程序设计 :数组数组- -批量数据处理批量数据处理 :函数函数- -模块化程序设计模块化程序设计 :指针的应用指针的应用 :自定义数据类型自定义数据类型 :文件的输入与输出文件的输入与输出课程主要内容第6章 数组指针与函数综合应用主要内容指针变量数或组名作为函数参数典型算法应用函数指针指针变量作为函数参数n指针变量作为函数参数q形参和实参都要求具有指针(

2、地址)值的性质,且它们指向的类型要保持严格一致。q函数的形参为指针变量时,实参可以为指向同类型的指针变量、同类型变量的地址、同类型的数组名。q函数调用时,系统将实参中的指针(地址)值传递给形参的指针变量,通过该指针变量中的地址实现对原实参所指向的内存单元的操作。#include void mult10(int x) x*=10; void main() int a; scanf(“%d“, printf(“before:a=%dn“,a);mult10(a); printf(“after:a=%dn“,a); 内存用户数据区指针变量作为函数参数n例题:试编写一个使变量值放大10倍的函数。a9x

3、90能否放大10倍?#include void mult10(int *x) *x*=10; void main() int a; scanf(“%d“, printf(“before:a=%dn“,a)mult10( printf(“after:a=%dn“,a); 内存用户数据区指针变量作为函数参数n例题:试编写一个使变量值放大10倍的函数。a2000x902000用数组名作函数参数n由于数组名代表数组首元素的地址,因此,数组名作 函数参数使用时,C语言编译器将形参数组名视为指 针变量,实参数组名视为指针常量。n数组名作为函数实参时,实参-形参之间传递的是实 参数组首元素的地址(指针)值。

4、n因此:以数组名作为函数形参,其效果和使用同类型 指针变量的形参相同。形参形式 实参形式 数组名 例如:void fun(int x) 指针变量(指向数组元素 ) 例如:void fun(int *p)数组名 指向数组元素的指针变量指向数组元素的指针变量 数组名用数组名作函数参数n例题:设计并使用函数输入/输出数组元素的值。#include “stdio.h”void main() void input(int *p, int n); /输入函数声明 void output(int arr, int n); /输出函数声明 int a10=0,*pa=a; input(a,10); /输入数组

5、a的前10个元素output(pa,10); /输出数组a的前10个元素 input(pa,10); output(a,10);用数组名作函数参数n与函数声明 void input(int *p , int n); 相适应的函数 定义,以下正确的有( )(B) void input(int arr, int n) int i;for(i=0;i void main() int i, a10=3,7,9,11,0,6,7,5,4,2;for(i=0;ixkxi=xk xk=tvoid sort( int *x , int n) int *i,*j,*k,t;for(i=x;i*k*i=*k *k

6、=t能互换否?YES第6章 数组指针与函数综合应用主要内容数组名或指针变量作为函数参数典型算法应用函数指针指向函数的指针n函数指针的概念n用函数指针变量调用函数n用函数指针变量作函数参数函数指针的概念n函数在被编译时,编译系统都将为函数代码分配一段存储空间,这段存储空间的起始地址,称为这个函数的指针。nC语言中的函数名即代表该函数的起始地址(指针)。n可以定义一个指向函数的指针变量,用来存放某函数的起始地址(指针) ,即:函数指针变量。n例如:int (*p)(int, int);qp是一个指向函数的指针变量,它指向一个返回值类型为整型且有两个整型参数的函数。用函数指针变量调用函数#inclu

7、de int max(int x,int y) return(xy?x:y); void main() int a,b,c; scanf(“%d,%d“,c= max(a,b);printf(“max=%dn“,c);能否写成 p=max(a,b); NONO(*p)(a,b);int (*p)(int,int); p=max;程序区数据区main*max#bac p#内存区域能否写成 c=p(a,b); 5 9 9用函数指针变量作函数参数n指向函数的指针可以作为函数的参数使用,例如:qvoid fun(int x, int y, int (*p)(int,int) );n例题10:有两个整数

8、a和b,由用户输入1,2或3。q输入1:求a和b中的最大值;q输入2:求a和b中的最小值;q输入3:求a与b的和值。用函数指针变量作函数参数#include int max(int x,int y) return(xy?x:y); int min(int x,int y) return(xy?y:x); int add(int x,int y) return(x+y);int fun(int x,int y, int (*p)(int,int) ) int resout; resout=(*p)(x,y);printf(“%dn“,resout); void main() int a=34,b

9、=-21,n;scanf(“%d“,switch(n) case 1: fun(a,b,max); break;case 2: fun(a,b,min);break;case 3: fun(a,b,add); 内容小结(指针的数据类型)定义含义 int i;定义整型变量i int *p;p为指向整型数据的指针变量 int an;定义含n个元素的整型数组aint *pn;n个指向整型数据的指针变量组成的指针数 组p int (*p)n;p为指向含n个元素的一维整型数组的指针 变量 int f();f为返回整型数的函数 int *p();p为返回指针的函数,该指针指向一个整型 数据 int (*p)();p为指向函数的指针变量,该函数返回整型 数 int *p;p为指针变量,它指向一个指向整型数据的 指针变量课后作业n习题册习题八n预习第七章。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 高中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号