c语言交换的子函数 c语言函数交换两个数的值

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

解答:

创新互联是工信部颁发资质IDC服务器商,为用户提供优质的成都移动机房托管服务

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

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

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

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

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

C语言:我使用子函数将指针变量中的指针进行交换,但是为什么所指向的变量却没有变?程序如下:

C语言中的任何函数形参都是值传递。所谓引用传递,不过是指针的值传递而已。

你的函数做的工作只是交换函数中的两个临时变量a和b的值,结果不会影响到外部的实参pa和pb。如果想要交换两个指针的值,你的形参应该为两个二级指针。

c语言函数的使用,定义一个交换函数 实现2个数字的交换。

void Swap(intx,inty)

{

int temp=0;

temp=x;

x=y;

y=temp;

}

int main()

{

int a=1;

int b=2;

Swap(a,b);

coutlt;lt;"a="lt;lt;alt;lt;endl;

coutlt;lt;"b="lt;lt;blt;lt;endl;

system("pause");

return 0;

}

运行结果:

扩展资料:

用指针交换:

void Swap(int*x,int*y)

{

int temp=0;

temp=*x;

*x=*y;

*y=temp;

}

int main()

{

int x=1;

int y=2;

Swap(x,y);

printf("x=%d,y=%d\n",x,y);

system("pause");

return 0;

}

运行结果:

X=2;Y=1


网站名称:c语言交换的子函数 c语言函数交换两个数的值
文章转载:http://azwzsj.com/article/dojssdo.html