网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

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语言怎么交换
URL标题:http://bjjierui.cn/article/hsgjhi.html

其他资讯