高二高教版C语言程序设计教程(第5版)课件第10章函数参数传递进阶

2022-12-02
| 25页
| 82人阅读
| 0人下载
普通

内容正文:

第10章 函数参数传递进阶 函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型数据。 【例10.1】交换两个指针变量所指向的变量的值 #include "stdio.h" void test(int *p1,int *p2) /* 形参为指针变量 */ { int p; p=*p1; *p1=*p2; *p2=p; } main( ) { int a1=10,a2=20; int *pa1,*pa2; pa1=&a1; pa2=&a2; test(pa1,pa2);/* 指针变量作为函数的实参 */ printf("%d,%d\n",a1,a2); } 10.1 指针变量作为函数参数 void test(int *p1,int *p2) /* 形参为指针变量 */ { int *t; t=p1; p1=p2; p2=t; } main( ) { int a1=10,a2=20; int *pa1,*pa2; pa1=&a1; pa2=&a2; test(pa1,pa2);/* 指针变量作为函数的实参 */ printf("%d,%d\n",a1,a2); } 没有改变主调函数中变量的值 【例】交换两个指针变量所指向的变量的值 void test(int *p1,int *p2) /* 形参为指针变量 */ { int p; p=*p1; *p1=*p2; *p2=p; } main( ) { int a1=10,a2=20; int *pa1,*pa2; pa1=&a1; pa2=&a2; test(pa1,pa2);/* 指针变量作为函数的实参 */ printf("%d,%d\n",a1,a2); } int a[2]={10,20}; test(a); void test(int *p) { int t; t=*p;*p=*(p+1);*(p+1)=t; } 10.2数组名和数组指针变量作函数参数 对于数组来说,数组名、数组指针变量以及数组元素的指针均为指针类型数据,当它们作为函数的实参时,相应的形参应为同类型的指针变量。 main( ) { int a[20];  func(a,20);  } func(int *b,int n) {  } main( ) { int a[20],*pa=a;  func(pa,20);  } func(int *b,int n) {  } int b[] 【例9.8】 利用选择法将数组中的n个整数由小到大排序。 #include "stdio.h" main( ) { int [6]={10,4,12,34,2,56}; int i; void sort(int *b,int n); sort(a,6); for(i=0;i<6;i++) printf("%4d",a[i]); printf(" "); } void sort(int *b,int n) { int i,j,k,t; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) if(*(b+j)<*(b+k))k=j; t=*(b+i); *(b+i)=*(b+k); *(b+k)=t; } } 归纳起来,如果有一个实参数组,想通过函数调用改变此数组元素的值,实参与形参的对应关系有以下4种等价形式:  形参和实参都用数组名;  实参用数组名,形参用数组指针变量;  实参形参都用数组指针变量;  实参为数组指针变量,形参为数组名。 【例】已知某班4位学生5门课的成绩,计算总平均分数,并输出某个学生各门课的成绩。 二维数组的指针作函数实参时,有列指针和行指针两种形式。相应的,用来接受实参数组指针的形参,必须使用相应形式的指针变量,如下所示: (1) 实参用列指针,形参用(列)指针变量。 (2) 实参用行指针,形参用行指针变量。 10.3 行数组指针变量作函数参数 #include "stdio.h" main( ) { void average(float *ap,int n,int k); /* 函数的声明 */ void search(float (*p)[6],int n,int m); /* 函数的声明 */ float cj[4][6]={{3,65,67,70,60,

资源预览图

高二高教版C语言程序设计教程(第5版)课件第10章函数参数传递进阶
1
高二高教版C语言程序设计教程(第5版)课件第10章函数参数传递进阶
2
高二高教版C语言程序设计教程(第5版)课件第10章函数参数传递进阶
3
高二高教版C语言程序设计教程(第5版)课件第10章函数参数传递进阶
4
高二高教版C语言程序设计教程(第5版)课件第10章函数参数传递进阶
5
高二高教版C语言程序设计教程(第5版)课件第10章函数参数传递进阶
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。