指针与函数.ppt
《指针与函数.ppt》由会员分享,可在线阅读,更多相关《指针与函数.ppt(23页珍藏版)》请在三一文库上搜索。
1、实验16 指针与函数,16.2.1 指针作为函数参数,1. 形参的类型说明 函数的参数不仅可以是整型、实型、字符型等数据,也可以是指针类型。指针作为函数参数时,注意形参类型要声明为指针类型,如: void swap(int *x, int *y) /* 这里形参x、y要声明为指针类型 */ 函数体 注意上述函数的形参是x、y,而不是*x、*y。,2. 函数调用,函数调用时,如果形参是指针类型,那么对应的实参也应该是一个指针值。如: swap( /* 实参是两个指针 */ 3. 指针作为参数的特殊性 通过指针作为函数参数可以传递一个指针给被调函数使用,但更重要的是其具有特殊性: 通过形参指针的指
2、向运算,可以在被调函数中访问主调函数中的变量。,下面通过一个例子来说明。,#include void ff1(int *x) /* 调用时x的值是 ,说明:语句ff1(&a)执行时,实参&a传递给形参x,因此ff1函数中的*x实际上就是main中的a, 结果main中的变量a被变成了100。,运行结果:,例16.1用指针作为函数参数,编写程序通过函数交换两变量的值。,#include void swap(int *x, int *y) int temp; temp=*x; *x=*y; *y=temp; ,main() int a=10,b=30, c=100,d=200; swap( ,本程
3、序先交换变量a和b的值,再交换变量c和d的值,结果输出:,程序说明:执行swap(&a,&b)时, &a传递给形参x,&b传递给形参y,因此swap函数中的*x、*y实际上就是main中的a和b,虽然swap函数中交换的是*x和*y的值,实际上等于交换main中的a与b的值。 同样,执行swap(&c,&d)时, &c传递给形参x,&d传递给形参y,这时swap函数中的*x、*y实际上就是main中的c和d,在swap函数中交换*x和*y的值,等同于在main中交换a与b的值。,4. 指针作为函数参数的应用,一个函数只能返回一个值,但是利用指针作为函数参数,可以从一个函数得到多个值。其方法是在
4、主调函数中定义多个变量,并将其地址传给函数,然后在函数中给主调函数中的这些变量一一赋值。如:,void fun(int *p1, int *p2, int *p3) *p1=100; *p2=200; *p3=300; main() int x,y,z; fun( ,说明:main从fun函数得到了3个值,其实现手段是将x,y,z的地址分别传给p1,p2,p3,因此fun中的*p1,*p2,*p3就是main中的x,y,z,也就是说,在fun中完成了对main的变量x,y,z的赋值。,运行结果:,16.2.2 数组名作为函数参数,数组作为函数参数的方法是将数组名作为函数参数,而且数组作为函数参
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指针 函数
链接地址:https://www.31doc.com/p-2717275.html