c语言函数指针交换两个数 c语言用指针交换两个数

C语言用指针法交换两个数的顺序问题

解答:

创新互联-专业网站定制、快速模板网站建设、高性价比鹿寨网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式鹿寨网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖鹿寨地区。费用合理售后完善,十多年实体公司更值得信赖。

1.    注意形式参数和实际参数的区别,主函数中的x,y是实际参数,swap函数中的a,b是形式参数。他们各有自己的存储空间,互不干扰。

2.    在程序适当位置加上输出地址的语句,即可看出为什么回到主程序后,x,y的值为什么不交换。

为了更形象,可以用图表示它们的关系:

可见,交换的只是swap函数中的a,b值,对主函数中的a,b值没有影响。

3.    修改的方法,将swap的交换变成值的交换。

c语言 用指针实现两个数的交换

int swap(int *a,int *b)//a与b分别复制主函数x与y的值,即a与x的指向相同,b与y的指向相同

{

int *t;

{t=a;a=b;b=t;}//通过交换,a和y的指向相同,b与x的指向相同,但是,x与y没有改变原来指向,这样函数swap结束,a与b消失,输出结果不变

}

换成

int t;

{t=*a;*a=*b;*b=t;}//将改变x和y指向的地址的值,达到交换目的

c语言用指针交换两个数?

在 huan(int *p1,int *p2)这个函数中,交换的只是两个指针的指向,但是函数的结束、返回,这两个指针本身就消失了(它们的值并不会传回到main()函数中)所以,最后的结果没有交换。

如果要起到交换的作用,这个函数应该这样写:

void huan(int *p1,int *p2)

{

int t;

t=*p1;

*p1=*p2;

*p2=t;

}


本文标题:c语言函数指针交换两个数 c语言用指针交换两个数
标题链接:http://bzwzjz.com/article/dodiooe.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 品牌网站建设 重庆企业网站建设 四川成都网站设计 成都商城网站建设 专业网站设计 企业网站制作 成都网站设计 移动手机网站制作 成都网站设计 成都网站建设流程 手机网站制作 梓潼网站设计 网站建设方案 成都网站制作 定制网站建设多少钱 企业网站建设 温江网站设计 成都网站建设 成都网站设计 网站制作 网站制作公司 网站建设费用