C语言中,不同代码块中的相同名字的变量是不同的,准确的说是指针不同,因此在某个函数体内是无法改变函数体外的变量,除非使用指针;
#include <stdio.h>
void exchange(int *u, int *v);
int main(void){
int x=10;
int y=20;
exchange(x,y);
printf("交换后x:%d",x);
printf("交换后y:%d",y);
}
void exchange(int u,int v){
int temp;
temp=u;
u=v;
v=temp;
}
-------------------------------------------------------------------------------------
#include <stdio.h>
void exchange(int *u, int *v);
int main(void) {
int x=10;
int y=20;
exchange(&x, &y);
printf("交换后x:%d", x);
printf("交换后y:%d", y);
}
void exchange(int *u, int *v) {
int temp;
temp = *u;
*u = *v;
*v = temp;
}
|