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

  • 11
  • 0
  • 约5.45千字
  • 约 24页
  • 2016-05-28 发布于河南
  • 举报

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

课程主要内容 第6章 数组指针与函数综合应用 主要内容 指针变量数或组名作为函数参数 典型算法应用 函数指针 指针变量作为函数参数 指针变量作为函数参数 形参和实参都要求具有指针(地址)值的性质,且它们指向的类型要保持严格一致。 函数的形参为指针变量时,实参可以为指向同类型的指针变量、同类型变量的地址、同类型的数组名。 函数调用时,系统将实参中的指针(地址)值传递给形参的指针变量,通过该指针变量中的地址实现对原实参所指向的内存单元的操作。 指针变量作为函数参数 例题:试编写一个使变量值放大10倍的函数。 指针变量作为函数参数 例题:试编写一个使变量值放大10倍的函数。 用数组名作函数参数 由于数组名代表数组首元素的地址,因此,数组名作函数参数使用时,C语言编译器将形参数组名视为指针变量,实参数组名视为指针常量。 数组名作为函数实参时,实参-》形参之间传递的是实参数组首元素的地址(指针)值。 因此:以数组名作为函数形参,其效果和使用同类型指针变量的形参相同。 用数组名作函数参数 用数组名作函数参数 与函数声明 void input(int *p , int n); 相适应的函数定义,以下正确的有( ) 用数组名作函数参数 类似的与 void output(int arr[], int n); 相适应的函数定义有: 用数组名作函数参数 若数组元素输入函数如下: void input(int arr[], int n) { int i; for(i=0;in;i++) scanf(%d, arr++); } void main( ) { int a[5]={0};  input(a,5); … } 用数组名作函数参数 例题: 将数组a中n个整数按相反顺序存放。 用数组名作函数参数 void inv(int x[ ],int n) { int temp,i,j; for(i=0;i= ;i++) { j= ; temp=x[i]; x[i]=x[j]; x[j]=temp; } } 用数组名作函数参数 #include stdio.h void main() { int i, a[10]={3,7,9,11,0,6,7,5,4,2}; for(i=0;i10;i++) printf(%d ,a[i]); printf(\n); inv(a,10); for(i=0;i10;i++) printf(%d ,a[i]); printf(\n); } 第6章 数组指针与函数综合应用 主要内容 数组名或指针变量作为函数参数 典型算法应用 函数指针 经典算法应用 选择排序算法。 第6章 数组指针与函数综合应用 主要内容 数组名或指针变量作为函数参数 典型算法应用 函数指针 指向函数的指针 函数指针的概念 用函数指针变量调用函数 用函数指针变量作函数参数 函数指针的概念 函数在被编译时,编译系统都将为函数代码分配一段存储空间,这段存储空间的起始地址,称为这个函数的指针。 C语言中的函数名即代表该函数的起始地址(指针)。 可以定义一个指向函数的指针变量,用来存放某函数的起始地址(指针) ,即:函数指针变量。 例如:int (*p)(int, int); p是一个指向函数的指针变量,它指向一个返回值类型为整型且有两个整型参数的函数。 用函数指针变量调用函数 用函数指针变量作函数参数 指向函数的指针可以作为函数的参数使用,例如: void fun(int x, int y, int (*p)(int,int) ); 例题10:有两个整数a和b,由用户输入1,2或3。 输入1:求a和b中的最大值; 输入2:求a和b中的最小值; 输入3:求a与b的和值。 用函数指针变量作函数参数 #include stdio.h 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(%d\n,resout); }? 内容小结(指针的数据类型) 课后作业 习题册习题八 预习第七章。 课程邮箱 : gy

文档评论(0)

1亿VIP精品文档

相关文档