用指针交换两个数_C++——指针 第五讲

这一讲的宗旨是:

1,深化读者对用指针变量函数形参优势的认识

2,使读者加强理解 指针在函数中的应用

前两讲的编程题目相同,方法不同:

第三讲调换的是p1和p2的值,即调换p1和p2的指向,使p1指向b而p2指向a,a和b的值没有调换

第四讲调换的是*p1和*p2,即调换a和b的

8b3b33394ab70a883ae4ae06e6ae595b.png

一,用指针变量做函数形参优势

优势:在被调用函数中使*p1和*p2调换,就会使a和b调换,无需给主调函数返回值

小知识:被调用函数只能给主调函数返回一个值,所以想通过返回值改变a和b的值会比较麻烦

如何通过调用函数改变主调函数中变量的值

(1)在主调函数中,定义n个变量,定义n个指针变量并指向n个变量,将n个指针变量作实参

(2) 在被调用函数中,写入n个基类型和主调函数中指针变量相同的指针变量

(3)改变形参指针变量指向的变量的值,就可以改变主调函数中变量的值

14571060530c2d0390fd2761bf745e27.png

二, 指针在函数中的应用

编程题目:

输入a,b,c三个整数,按照从大到小的顺序输出

程序编写如图

c6a732a68590fb9f0e4284f626245db0.png

分析程序:

1程序思路

可使程序先后输出a,b,c,但是因为a,b,c的大小不确定,所以应该定义函数,使得最大值赋给a,其次值赋给b,最小值赋给c。

9b920db382f8c5c85e55cf5a46251421.png

2,定义主函数

(1)定义三个整型变量a,b,c和三个指针变量p1,p2,p3;

(2)编写输入语句,使程序获得整型变量a,b,c的具体数值;

(3)分别将a,b,c的地址赋值给指针变量p1,p2,p3,那么*p1,*p2,*p3就分别等价于a,b,c;

(4)先声明自定义exchange函数,再调用exchange函数,使变量a的值最大,b的值次之,c的值最小;

(5)编写输出语句,依次输出a,b,c,即可达到按照从大到小的顺序输出三个整数的目的

77ceaa39f69da913cb1b15383c8f3dc5.png

3,定义exchange函数

(1)此函数不需要返回值,所以是void类型;函数的形参是三个指针变量,分别为q1,q2,q3;

(2)采取俩俩比较的方式,所以声明swap函数,swap函数的作用是调换两个整型变量的值;

(3)先比较*p1和*p2,即比较a和b,如果a的值小,则将a和b的值调换,否则不调换,使得a的值是这两个数中较大的数;

(4)再比较*p1和*p3,即比较a和c,如果a的值小,则将a和b的值调换,否则不调换,使得a的值是这两个数中较大的数;

(5)最后比较*p2和*p3,即比较b和c,如果b的值小,则将b和c的值调换,否则不调换,使得c的值是这三个数中最小的数;

6497c0a3b1d5681e75400d62e54ec55f.png

4,定义swap函数

(1)函数类型为void,形参为两个指针变量pt1和pt2

(2)定义中间变量temp,调换*pt1和*pt2的值

程序分析到此结束,不懂之处随时私信或评论留言

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值