中国高校课件下载中心 》 教学资源 》 大学文库

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

文档信息
资源类别:文库
文档格式:PPT
文档页数:23
文件大小:254.5KB
团购合买:点击进入团购
内容简介
《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; } } 数组名作函数参数

共23页,试读结束,阅读完整版请下载
刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档