关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

已结题
为啥调用了swap函数a b的值没有发生互换
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除
- 收藏 举报
1条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
不二梦想家 2021-11-25 20:29关注方法一,你把swap里的x.y前面分别加上&就可以了
方法二,你把x.y定义为全局变量,也就是在头文件后面int x,int y本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容
报告相同问题?
提交
- 2021-12-01 08:49回答 3 已采纳 void swap(int a,int b)函数中是传值,传值对main函数中的数据没有影响。在main函数中调用swap的时候,会发生一次拷贝操作,也就是让把5传递给swap的形参a,6传递给形参6
- 2017-07-14 16:23回答 5 已采纳 ``` void swap(int *x,int *y) { int temp; temp=*x; *x=*y; *y=temp; } swap(&a[0],&a[1])
- 2023-02-09 10:19回答 4 已采纳 因为字符指针作为函数参数,交换的只是形参的值,其结果不能传回main函数,如果需要改变字符指针指向的地址,需要把字符指针的地址传入函数swap,然后再在函数中解引用让字符指针指向新的地址,修改如下:
- 2021-10-03 11:41在C++编程语言中,`swap`函数是一个非常基础且重要的工具,用于交换两个变量的值。这个功能在处理数组、容器或者需要重新排列数据顺序的场景中非常常见。本篇文章将深入探讨`swap`函数的工作原理,以及如何在C++中...
- 2022-11-16 21:04回答 1 已采纳 1.函数调用中发生的数据传递是单向的,只能把实参的值传递给形参,而不能把形参的值反向地传递给实参;换句话说,一旦完成数据的传递,实参和形参就再也没有瓜葛了,所以,在函数调用过程中,形参的值发生改变并不
- 2021-06-19 23:31回答 1 已采纳 i =*p1;*p1=*p2; *p2 =i swap(&n1,&n2);
- 2021-07-18 12:42回答 2 已采纳 这是值传递类型,并没有改变值。
- 2020-12-21 20:15weixin_39609670的博客 平常swap(a,b)值交换,我们基本都是使用第一种方法,对于数学较好的人,可能会想到第二种方法,想到时,一定感觉很好,。对于汇编或对位有理解的人,可能会想到第三种方法,这个方法很妙。但,真正促使我写这篇文章...
- 2021-08-14 22:09回答 2 已采纳 类型不一样,参数是2个※星号,变量是一个※星号。
- 2021-11-24 10:08回答 1 已采纳 swap函数的形参是指针,所以实参传入的肯定是指针。*是取值,如果仅仅把指针里的值传到swap里,就无法交换实参的值了。举个例子,如果加*,就是把作业给他抄一份过去传入函数,他自己再怎么折腾,都影响不
- 2021-12-29 11:48回答 6 已采纳 传参有误,所以swap在这里相当于没有任何作用
- 2023-09-16 11:36学习&实践爱好者的博客 C++自定义swap函数实现交换两个变量的值兼谈参数传递
- 2020-09-02 02:25通过三次异或操作,可以实现`a`和`b`的值互换,而不需要任何中间变量。这种方法是安全的,不会导致数据溢出,因此在实际编程中被广泛采用。 在`main`函数中,我们分别调用了这三个函数,并打印了交换后的结果。需要...
- 2023-04-11 21:15qq_58657418的博客 【代码】C语言:交换两个数的值(swap函数)
- 2022-04-29 10:33数学人学python的博客 需要交换a与b的地址(如果单纯交换两个数值,函数会新创建两个数值,并且交换,与原来数值无关)
- 2021-12-09 19:39WP2908392647的博客 #include<stdio.h> int swap(int x,int y);... swap(a,b); printf("a=%d,b=%d\n",a,b); return 0; } int swap(int x,int y) { int t; t=x; x=y; y=t; printf("交换后的x=%d,y=%d\n",x,y); }
- 2023-11-20 18:05风间琉璃l的博客 int* tmp;*tmp = *p1;*p1 = *p2;*p2 = *tmp;悬空指针(悬挂指针,野指针)的出现一般有两种情况:1.指针未初始化;2.地址失效.在这里是因为定义了指针后没有初始化,该指针不能访问地址.
- 2020-12-15 17:04不会写程序猿的代码的博客 如果直接把两个int传入函数,用一个中间变量交换他们俩,那么这只是改变了这个变量在swap函数里面的值,回到main里面就复原了。 那么,如何真正交换两个int变量的值呢? 用指针,把两个int的地址传过去才可以。 如下...
- 2019-10-23 22:10anye。的博客 值传递交换值失败。 #include<stdio.h> #include<stdlib.h> void swap(int a, int b) { int t; t = a; a = b; b = t; } int main() { int m, n; scanf("%d %d", &m, &n); swap(m, n); ...
- 2021-04-28 14:43Tsundoko的博客 void Swap(int a ,int b) { int tmp =a; a=b; b=tmp; } int main() ...因为上述的a b 仅仅实现了在Swap函数中的交换,对主函数没有变化; void Swap(int *a ,int b) { int tmp =a; a=b; b=tmp; } int
- 没有解决我的问题, 去提问