首页 > 后端开发 > 正文

上面程序中函数swap()本来是想将两个数的值相互交换,但结果为什么没有交换?

2024-11-07 15:46:41 | 我爱编程网

今天我爱编程网小编整理了上面程序中函数swap()本来是想将两个数的值相互交换,但结果为什么没有交换?相关信息,希望在这方面能够更好帮助到大家。

本文目录一览:

上面程序中函数swap()本来是想将两个数的值相互交换,但结果为什么没有交换?

定义一个函数swap,功能为交换两个变量a和b的值,在主函数中输入2个数,调用该函数,输出交换后的数据.

#include< stdio.h >

void swap(int *a,int *b)

{

int temp;

temp = *a;

*a = *b;

*b = temp;

} 我爱编程网

int main()

{

int a,b;

scanf("%d%d",&a,&b);

swap(&a,&b);

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

return 0;

}

swap操作实现交换两个容器内所有元素的功能。要交换的容器的类型必须匹配: 必须是相同类型的容器,而且所存储的元素类型也必须相同。调用了swap函数后,右操作数原来存储的元素被存放在左操作数中,反之亦然。

扩展资料:

执行swap后,容器svec1中存储24个string类型的元素,而svec2则存储10个元素。

关于swap的一个重要问题在于:该操作不会删除或插入任何元素,而且保证在 常量 时间内实现交换。由于容器内没有移动任何元素,因此 迭代器 不会失效。

计算机中的函数,可以根据其运算功能,由我们自己去定义,只要是运算功能是固定的,我们就可以把它定义成一个函数,这样可以避免相同的程序段在程序中重复出现。

在需要它时,只需要调用相应的函数就行了。这样不仅可以使我们编写的程序精简,而且可以使我们的程序更富有可读性。

参考资料来源: 百度百科——SWaP

上面程序中函数swap()本来是想将两个数的值相互交换,但结果为什么没有交换?

上面程序中函数swap()本来是想将两个数的值相互交换,但结果为什么没有交换?

这个关键还是要搞明白形参和实参的问题,你把x y 的地址传进去之后, 在swap里面修的是指针的值,相当于把指针指向了另外一个地方,并不会修改指针指向的内容, 这个地方修改的话
int *swap(int *a,int *b)
{ int p;
p=*a; *a=*b; *b=p;
return(a);
}

上面程序中函数swap()本来是想将两个数的值相互交换,但结果为什么没有交换?

编写一个交换函数swap(int *x,int *y),实现2个数的交换,并在主函数中调用,最后输

我爱编程网(https://www.52biancheng.com)小编还为大家带来编写一个交换函数swap(int *x,int *y),实现2个数的交换,并在主函数中调用,最后输的相关内容。

#include <stdio.h>
void swap(int *x,int *y);
int main(void)
{
int a,b;
printf("a: ");
scanf("%d",&a);
printf("b: ");
scanf("%d",&b);
swap(&a,&b);
printf("a=%d b=%d\n",a,b);
return 0;
}

void swap(int *x,int *y)
{
int z=*x;
*x=*y;
*y=z;
}

以上,就是我爱编程网小编给大家带来的上面程序中函数swap()本来是想将两个数的值相互交换,但结果为什么没有交换?全部内容,希望对大家有所帮助!更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“上面程序中函数swap()本来是想将两个数的值相互交换,但结果为什么没有交换?”相关推荐