《C语言》课程教学资源_函数及深入_函数深入

《C语言程序设计》 函数深入
《 C语言程序设计》 函数深入

指针做参数的经典例子一交换两个整数值 #include "stdio.h" void swap(int m,int n) (main) 2000 变量a 5 2004 变量b int temp; 8 2908 temp=m; 200C m=n; 2010 n=temp; (swap) 2014 一变量m 8 main() 2D18 变量n 5 201C 变量temp 5 int a,b; 2020 scanf ("%d,%d",&a,&b); swap (a,b); printf ("n%d,%d n",a,b); 运行结果:5,8
目标要求 讲课提纲 讲课内容 课后作业 退出 #include "stdio.h" void swap(int m,int n) { int temp; temp=m; m=n; n=temp; } main() { int a,b; scanf("%d,%d",&a,&b); swap(a,b); printf("\n%d,%d\n",a,b); } . 2000 2010 2014 2004 2008 200C 2018 201C 2020 . 变量a 变量b (main) (swap) 变量m 变量n 变量temp 8 5 5 8 5 指针做参数的经典例子—交换两个整数值 运行结果:5,8 8 5 值传递

指针做参数的经典例子一交换两个整数值 swap(int *pl,int *p2) { int p; (main) 2000 整型变量a p=*pl; 8 2004 整型变量b *pl=*p2; 5 地址传递 2008 指针pointer_I *p2=p; 2000 200C 指针pointer_2 2010 2004 mainO COPY 2014 (swap) int a,b; 指针pl 2000 int *pointer 1,*pointer 2; 2018 一指针p2 2004 scanf("%d,%d",&a,&b); 201C 整型p 5 pointer_1=&a;pointer 2=&b; 2020 swap(pointer_1,pointer_2); printf("\n%d,%d n",a,b); 运行结果:8,5 目标要求 讲课提纲 讲课内容 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 swap(int *p1, int *p2) { int p; p=*p1; *p1=*p2; *p2=p; } main() { int a,b; int *pointer_1,*pointer_2; scanf("%d,%d",&a,&b); pointer_1=&a; pointer_2=&b; swap(pointer_1,pointer_2); printf("\n%d,%d\n",a,b); } . 2000 2010 2014 2004 2008 200C 2018 201C 2020 . 5 8 整型变量a 整型变量b (main) 指针pointer_1 指针pointer_2 2000 2004 (swap) 指针p1 指针p2 整型p 5 8 2000 2004 COPY 5 地址传递 运行结果:8,5 指针做参数的经典例子—交换两个整数值

指针及其应用 指针变量作为函数形参 将指针变量作为函数的形参一地址扯传递 特点:共享内存,“双向”传 递 目标要求 讲课提纲 讲课内容 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 指针及其应用 将指针变量作为函数的形参-地址传递 指针变量作为函数形参 特点:共享内存,“双向”传 递

不能企图通过改变指针形参的值而使指针实参 的值改变。 #include "stdio.h swap(int *pm,int *pn) int *pt; pt=pm; pm=pn pn=pt; 输入:5,8 main() 运行结果:5,8 int a,b,*pl,*p2; scanf ("%d,%d",&a,&b); p1=&a;p2=&b; 为什么 swap(p1,p2); printf ("\n%d,%d n",*p1,*p2); 目标要求 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 不能企图通过改变指针形参的值而使指针实参 的值改变。 #include "stdio.h" swap(int *pm,int *pn) { int *pt; pt=pm; pm=pn; pn=pt; } main() { int a,b,*p1,*p2; scanf("%d,%d",&a,&b); p1=&a;p2=&b; swap(p1,p2); printf("\n%d,%d\n",*p1,*p2); } 输入:5,8 运行结果:5,8 为什么

数组名作函数参数 数组名作函数参数,是地址传递 数组名作函数参数,实参与形参的对应关系 实参 形参 数组名 数组名 数组名 指针变量 指针变量 数组名 指针变量 指针变量 目标要求 讲课提纲 讲课内容 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 数组名作函数参数,是地址传递 数组名作函数参数,实参与形参的对应关系 实参 形参 数组名 指针变量 数组名 指针变量 数组名 数组名 指针变量 指针变量 数组名作函数参数

数组名作函数参数 ●●●● ●●● 形参数组与实参数组之间的结合要注意以下几点: 1.调用函数与被调用函数中分别定义数组,其数组 名可以不同,但类型必须一致。 2. 实参数组与形参数组的结合是采用地址结合的, 从而可以实现数据的“双向”传递。 3. 实参数组与形参数组的大小可以一致也可以不一 致,C编译系统对形参数组的大小不作检查,调 用时只将实参数组的首地址传给形参数组。 4.虽然函数中的形参数组一般不指定大小,但为了 控制形参数组的使用范围,一般要在函数中另设 一个传送形参数组元素个数的形参变量, 目标要求 讲课提纲 讲课内容 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 形参数组与实参数组之间的结合要注意以下几点: 1. 调用函数与被调用函数中分别定义数组,其数组 名可以不同,但类型必须一致。 2. 实参数组与形参数组的结合是采用地址结合的, 从而可以实现数据的“双向”传递。 3. 实参数组与形参数组的大小可以一致也可以不一 致,C编译系统对形参数组的大小不作检查,调 用时只将实参数组的首地址传给形参数组。 4. 虽然函数中的形参数组一般不指定大小,但为了 控制形参数组的使用范围,一般要在函数中另设 一个传送形参数组元素个数的形参变量, 数组名作函数参数

数组名作函数参数 例:用指针变量作函数参数找一维数组中最大值 #include "stdio.h int max (int *q) main() {int n,i; { n=*q; int a[10],m,*p; for(i=1;i<10;i+) for(p=a;p<a+10;p++) if (n<*(q+i)) scanf("%d”,p); n=*(q+i); m=max (a) return (n); printf("m=‰d",m); 目标要求 讲课提纲 讲课内容 课后作业 K 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 例:用指针变量作函数参数找一维数组中最大值 #include "stdio.h " main() { int a[10],m,*p; for(p=a;p<a+10;p++) scanf("%d",p); m=max(a); printf("m=%d",m); } int max(int *q) {int n,i; n=*q; for(i=1;i<10;i++) if(n<*(q+i)) n=*(q+i); return(n); } 数组名作函数参数

数组名作函数参数 >将数组a中的n个整数按相反顺序存放。 379 11 675 m 2 4 5 6 3 目标要求 讲课提纲 (讲课内容 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 ➢ 将数组a中的n个整数按相反顺序存放。 数组名作函数参数

数组名作函数参数 void inv(int[],intn)/*形参x是数组名*/ { int temp,i,j=(n-1); for(i=0;i<=ji++,j-) temp=x[i];x[i]=x[j];x[j]=temp; 目标要求 讲课提纲 讲课内容 课后作业 退出
目标要求 讲课提纲 讲课内容 课后作业 退出 void inv(int x[],int n) /*形参x是数组名*/ { int temp,i,j=(n-1); for(i=0;i<=j;i++,j-) { temp=x[i];x[i]=x[j];x[j]=temp; } } 数组名作函数参数
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C语言》课程教学资源_结构体与链表_结构体与链表.ppt
- 《C语言》课程教学资源_位运算_位运算.ppt
- 《C语言》课程教学资源_指针_指针.ppt
- 《C语言》课程教学资源_数组_数组及其应用.ppt
- 《C语言》课程教学资源_循环结构_循环结构.ppt
- 《C语言》课程教学资源_第4章选择结构_选择结构.ppt
- 《C语言》课程教学资源_第2、3章课件_第2、3章课件.ppt
- 《计算机应用基础》课程教学资源(PPT课件讲稿)第二章 Linux操作系统.ppt
- 《计算机应用基础》课程教学资源(PPT课件讲稿)PHP网页程序设计.ppt
- 《计算机应用基础》课程教学资源(PPT课件讲稿)HTML网页设计基础.ppt
- 《计算机应用基础》课程教学资源(PPT课件讲稿)第一章 计算机组成概述.ppt
- 山东理工大学:《数据结构》课程教学课件(数学)CH1 绪论(主讲:殷超).ppt
- 山东理工大学:《数据结构》课程教学课件(数学)CH2 线性表.ppt
- 山东理工大学:《数据结构》课程教学课件(数学)CH3 栈和队列.pdf
- 山东理工大学:《数据结构》课程教学课件(数学)CH4 串.ppt
- 山东理工大学:《数据结构》课程教学课件(数学)CH5 数组和广义表.ppt
- 山东理工大学:《数据结构》课程教学课件(数学)CH6 树和二叉树.ppt
- 山东理工大学:《数据结构》课程教学课件(数学)CH7 图.pdf
- 山东理工大学:《数据结构》课程教学课件(数学)CH9 查找表.pdf
- 山东理工大学:《数据结构》课程教学课件(数学)CH10 排序.pdf
- 《C语言》课程教学资源_函数及深入_函数.ppt
- 《C语言》课程教学资源_文件_文件.ppt
- 《C语言》课程教学资源_字符串处理_字符串处理.ppt
- 《C语言》课程教学资源_编译预处理_编译预处理.ppt
- 《C语言》课程教学资源_复习_复习.ppt
- 《C语言》课程教学课件(PPT讲稿)第14章 文件.ppt
- 《C语言》课程教学课件(PPT讲稿)第12章 结构体.ppt
- 《C语言》课程教学课件(PPT讲稿)第11章 编译预处理命令.ppt
- 《C语言》课程教学课件(PPT讲稿)第10章 函数进一步讨论.ppt
- 《C语言》课程教学课件(PPT讲稿)第9章 函数.ppt
- 《C语言》课程教学课件(PPT讲稿)第8章 字符串处理.ppt
- 《C语言》课程教学课件(PPT讲稿)第7章 指针.ppt
- 《C语言》课程教学课件(PPT讲稿)第6章 数组.ppt
- 《C语言》课程教学课件(PPT讲稿)第5章 循环补充习题.ppt
- 《C语言》课程教学课件(PPT讲稿)第5章 循环结构程序设计.ppt
- 《C语言》课程教学课件(PPT讲稿)第4章 选择结构程序设计.ppt
- 《C语言》课程教学课件(PPT讲稿)第3章 顺序程序设计.ppt
- 《C语言》课程教学课件(PPT讲稿)第2章 基本的数据与运算.ppt
- 《C语言》课程教学课件(PPT讲稿)第1章 引论.ppt
- 《C语言》课程教学课件(PPT讲稿,课堂课件)C13-14.ppt
