网站建设资讯

NEWS

网站建设资讯

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://njwzjz.com/article/dodiooe.html