189 8069 5689

c语言函数为什么不能交换,c语言怎么交换

C语言,这样为什么不可以实现两个数值的交换?

因为在swap函数中,a b是x y的数据复制品,其变化与X y本身无关,如果要交换,需要传递x y的地址到子函数中,进行交换!

创新互联公司是一家专注于成都网站制作、成都网站建设与策划设计,黄平网站建设哪家好?创新互联公司做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:黄平等地区。黄平做网站价格咨询:13518219792

1 #include stdio.h

2 void swap(int *a ,int *b )

3 {

4

5 int temp;

6 temp=*a;

7 *a=*b;

8 *b=temp;

9 }

10 int main()

11 {

12 int x=3;

13 int y=4;

14 swap(x, y);

15 printf("%d%d",x,y);

16 }

C语言,函数来交换两个数值,为什么我运行的结果两个数值没有交换?

你交换的只是swap函数内的局部变量n,m值,应该改成这样

#includestdio.h

void swap (int *n,int *m) 

{

int temp;

temp=*n;

*n=*m;

*m=temp;

}

void main()

{

int a=10,b=20;

swap(a,b);

printf("a=%d,b=%d\n",a,b);

}

注意函数形参的传值和传地址的区别

C语言中 为什么不能用函数互换两个值~

C语言中是可以用函数互换两个值的。

方法如下:

#include"stdio.h"

int swap(int *a,int *b)

{

int temp;

temp=*a;

*a=*b;

*b=temp;

}

main()

{

int x,y;

printf("请输入x与y的值,用空格隔开\n");

scanf("%d %d",x,y);

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

swap(x,y);

printf("交换后\nx=%d,y=%d\n",x,y);

}

C语言中交换两个数利用函数的调用为什么不行了。

因为在函数中的参数,并不是调用者的变量,而是临时申请的变量a和b存放main函数中变量a和b的值,并在函数中用来计算,在fun中给a和b赋值都是在操作这两个临时申请的变量,函数返回后,这两个变量被舍弃,函数调用也没有将这两个临时变量的值返回给main函数中调用使用的参数功能。

所以,在函数中要操作调用者申请的变量,需要给出它们的指针,函数中用指针来找到这些变量的位置和内容。


文章题目:c语言函数为什么不能交换,c语言怎么交换
文章源于:http://cdxtjz.cn/article/hsgjhi.html

其他资讯