大家好,今天来介绍swap在c语言中是什么意思(c语言中swap是什么意思)的问题,以下是渲大师小编对此问题的归纳和整理,感兴趣的来一起看看吧!
c语言中swap是什么意思啊
C语言中swap函数是自定义的函数,C标准库里没有swap函数。swap函数是用来交换的函数,经常搏闭在C语言中排序中会用到。
代码示例:
#include
void swap(int *a, int *b){
int t;
t = *a;
*a = *b;
*b = t;
}
int main()
{
int a=23,b = 43;
printf("输入的两个要交换的数为:%d,%d\n",a,b);
swap(&a,&b);
printf("交换后的数为:%d,%d\n",a,b);
return 0;
}
程序运行:
扩展资料
C语言中使用swap()函数,要注意的是,想要交换a,b的值,其实就是相当于要在函数中改变变雹嫌量的值,要做到这一点,就需要向源银手形式参数传递实际参数的地址了,因为这样把变量的地址复制到函数中的变量里,它们指向的是内存中的同一个地方,在函数中改变这个地方的值,那么外部的变量的值也就改变了。
-C语言
c语言中swap 是什么意思
swap函数一般是一个程序员自定义函数。通常是实现两个变量数值的笑陆缺交换。
1.swap1(x,y);
printf("swap1: x:%d,y:%d\n",x,y);//形参传值,不能交换,实际传过去是拷贝的一份,没改变主函数中x,y。
2.swap2(&x,&y);
printf("swap2: x:%d,y:%d\n",x,y);//不能交换,函数中只是地址交换了下,地址指向的内容没有交换。
3.swap3(&x,&y);
printf("swap3: x:%d,y:%d\n",x,y);//能交换,地址指向的内容进行了交换。
扩展资料
C语言是一门通用计算机编程语言,广悉亩泛应用于底层开发。
C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行碰辩环境支持便能运行的编程语言。
C语言_
C语言中的swap是什么意思
swap函数一般是一个程序员自定义掘歼函数。通常是实现两个变量数值的交换。比如
int a = 2;
int b =3;
swap(a,b); //一般用到变量数值交换,交换后a=3 b = 2;
实现的方法多种多样。比如下面几种旦散纯写法:
1、通过使用临时变模咐量实现交换。
void swap1(int x,int y)
{
int temp;
temp=x;
x=y;
y=temp;
}
2、通过临时指针变量实现交换。
void swap2(int *x,int *y)
{
int *temp;
temp=x;
x=y;
y=temp;
}
3、借助指针加入临时变量来实现交换。
void swap3(int *x,int *y)
{
int temp;
temp=*x;
*x=*y;
*y=temp;
}
C语言中swap的作用和用法
1.作用:swap的意思是交换两个变量的值,是一个自定义函数。
2.用法:使a和b的值进行互换。
例如:void swap(int*p1,int*p2) //*p1=a;*p2=b;
改变指针指向的地址的值,即a和b的值互换。
3.其他用法
swap1只进行了值传递,所以函数调用结束后形参被释放,不能实现实参的值交换;
swap2直接使用全局变量,这样swap2函数和main函数操作的是同一个变量(地址和值都一样),可以实现值交换;
swap3使用传地址的方式,通过修改内存块来实现变量的值交换,是可以的。
swap4使用引用(&)的方式,这样是给mian函数中待交换的变量起一个别名,并把把别名作为形参在swap4中进行处理,这其实就实现了形参和实参的地址和内容完全一样,当然可以实现值交换,swap4的效果和swap2的一样,但这种定义方式更利于程序的调试和维护,同时也可以减小内存开销。
swap5中虽然也把变量的地址传到了函数中,但在函数内部并没用修改地址指向的内存块而是把地址在含滑渣形参上完成交换,swap5函数运行谈悄结束,所有的工作都会都是,而main函数中的变量也没有实现交换,这种情况和swap1类似。
具体代码如下:
-
/*-----trytoswapthevalueofaandb,butitdoesnotworkout.*/
-
/*voidswap1(intx,inty)
-
{
-
inttemp;
-
temp=x;
-
x=y;
-
y=temp;
-
}*/
-
/*------usingtheglobalvariablescanimplementtheswap----*/
-
/*inta(3),b(5);
-
//thedeclarationsofaandbinthemainfunctionshouldbecommentedout.
-
voidswap2()
-
{
-
inttemp;
-
temp=a;
-
a=b;
-
b=temp;
-
}*/
-
/*----usingthepointertopasstheaddressto让纤theswapfunction*/
-
/*voidswap3(int*px,int*py)
-
{
-
inttemp;
-
temp=*px;
-
*px=*py;
-
*py=temp;
-
}*/
-
/*----usingthereferenceoperator(&)-----*/
-
voidswap4(int&x,int&y)
-
{
-
inttemp;
-
temp=x;
-
x=y;
-
y=temp;
-
}
-
/*----meaninglessswap---*/
-
/*voidswap5(int*px,int*py)
-
{
-
int*p;
-
p=px;
-
px=py;
-
px=p;
-
}*/
-
intmain(intargc,char*argv[])
-
{
-
inta(3),b(5);
-
printf("beforeswap:%3d%3d\n",a,b);
-
swap4(a,b);
-
printf("afterswap:%3d%3d\n",a,b);
-
return0;
-
}
c语言中的swap是什么意思
交换; 交换物,被掉换者的意思
C语言中常常被用作C函数名 来表示该函数功能.
本文地址:https://gpu.xuandashi.com/73827.html,转载请说明来源于:渲大师
声明:本站部分内容来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场!