关于自定义函数实现两个数的交换中需要注意的问题是,编写自定义函数,实现两数交换
自定义一个交换函数来实现A和B值的交换,如果代码如下:
#包含stdio.h
void Swap( int x,int y)
{
int t;
t=x;
x=y;
y=t;
}
int main()
{
int a,b;
scanf(%d %d ,a,
互换(a,b);
printf(%d %d ,a,b);
返回0;
}运行结果如下:
我们会发现A和B的值是不交换的。为什么?
原因是Swap函数中定义的X和Y的内存地址与A和B的不同,X和Y的值只通过中间变量T交换,而A和B的值没有变化。
我们可以使用指针变量来交换两个值。让我们先回顾一下指针变量的基本含义:
int a=10//为变量A打开一个地址空间,存储10
Int *p=//为指针变量P开辟一个地址空间,用来存放变量a的地址。
* p=20//*是一个解引用操作符,*p=20表示A会被它的地址找到,10会被20代替。
printf(%d ,a);//此时,a的值是20
指针指向地址,通过已知的地址,我们可以改变它的内容,从而修改程序:
#包含stdio.h
void Swap( int *pa,int *pb)
{
int t;
t=* pa
* pa=* pb
* Pb=t;
}
int main()
{
int a,b;
scanf(%d %d ,a,
互换(a,
printf(%d %d ,a,b);
返回0;
}运行结果正确,如下:
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。