我一直不明白指针作为函数参数为什么可以改变实际参数的值?
我一直不明白指针作为函数参数为什么可以改变实际参数的值?就可以看下这个例子:
#include<stdio.h>
void main()
{
void swap(int *p1,int *p2);
int *pointer_1,*pointer_2;
int a,b;
scanf("%d,%d",&a,&b);
pointer_1=&a;
pointer_2=&b;
if(a<b)
swap(pointer_1, pointer_2);
printf("%d,%d",a,b);
}
void swap(int *p1,int *p2)
{
int t;
t= *p1;
*p1=*p2;
*p2=t;
getchar();
getchar();
getchar();
getchar();
}
比如 输入 5 9
结果 9 5
指针交换了,只能改变他所指向的值,但是怎么样的去改变a,b的值呢?
或许举出一个更好的例子加以说明下!
very thankyou!