《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 为什么