c语言指针交换数值,C语言用指针变量交换
Yyds干货库存
#包含stdio.h
void swap(int a,int b)
{
内部温度;
temp=a;
a=b;
b=温度;
printf(a=%d,b=%d\n ,a,b);
}
int main()
{
int v=1,x=3;
swap( v,x);
printf(v=%d,x=%d\n ,v,x);
返回0;
}
请看上面的代码。我没有用指针形式来定义上面的代码。结果如何呢?让我们考虑一下。我们定义的swap函数实现了A和b的交换,这个是毫无疑问的,但是主要的函数,叫做,V和X的值是交换的吗?
答案如下:
和v X没有交换.这是为什么呢?
实际上V和X分别把v=1和x=3传递给A和B(也就是从主函数传递给交换函数),所以A和B交换。调用swap函数后,释放参数A和B,从而实现交换。
在整个过程中,当V和X向A和B传递值时,不存在交换。因为两者在不同的作用域,V和X不交换。那么如何交换呢?下面我们介绍指针的概念。
指针:用来存储地址的变量。
请看下面的代码:
#包含stdio.h
void swap(int *a,int *b)
{
内部温度;
temp=* a;
* a=* b;
*b=温度;
printf(*a=%d,*b=%d\n ,*a,* b);
}
int main()
{
int v=1,x=3;
swap( v,x);
printf(v=%d,x=%d\n ,v,x);
返回0;
}
一般来说,我们通过指针“*”和地址符号“.”来桥接两个原本不同的空间和范围。原来V和X的值是单向传导的,现在实际参数是两个地址。在A和B交换的同时,V和X进行短暂的交换,交换后的值返回给main函数。
,
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。