#include<stdio.h>
int main()
{
void swap(int *p1,int *p2);
int a,b;
int *pointer_1,*pointer_2;
printf("please enter two integer numbers:");
scanf("%d,%d",&a,&b);
pointer_1=&a;
pointer_2=&b;
if(a<b)
swap(pointer_1,pointer_2);
printf("max=%d,min=%d\n",a,b);
return 0;
}
void swap(int *p1,int *p2)
{
int *p;
p=p1;
p1=p2;
p2=p;
}
这是一个对数如的两个数按大小顺序输出的代码!
在swap函数中,交换的是p1和p2的值,它们俩个是指针变量,分别代表a和b的地址,那么交换它俩就是交换a和b的地址,我想问问交换地址是什么意思可以这样理解吗?假如变量a分配的地址是2000,里面存储了值5,变量b分配的地址是2004,里面存储的是值9,pointer_1是a的地址,也就是2000,pointer_2是b的地址,也就是2004,调用函数后p1的值就是2000,p2的值就是2004,swap函数中交换p1和p2的值后p1的值就是2004,p2的值就是2000,这样交换后pointer_1和pointer_2的值也变了吗?void swap函数并没有返回值,而且swap中的指针变量在函数调用结束后就释放了,那他是怎样使pointer_1和pointer_2的值改变的!swap函数交换地址是像我说的这样交换的吗?不是的话是怎么交换的!谢谢了!