函数调用时需要注意函数参数传递是值传递(传值)还是地址传递(传地址)。
传值:形参不影响实参的值
void swap(int m,int n){
int x;
x=m;m=n;n=x; //这里只是形参m和n的值做交换,与...
函数调用时需要注意函数参数传递是值传递(传值)还是地址传递(传地址)。
传值:形参不影响实参的值
void swap(int m,int n){
int x;
x=m;m=n;n=x; //这里只是形参m和n的值做交换,与实参a和b无关
printf(“%d %d,”,m,n);
}
main(){
int a=10,b=20;
swap(a,b);
printf(“%d %d”,a,b);
}
输出结果:20 10,10 20
传址:形参能够改变实参的值
void swap(int *m,int *n){
int x;
x=*m; *m=*n; *n=x; //这里是形参指针解引用,改变了地址中的值,也就是改变了a,b的值
printf(“%d %d,”,*m,*n);
}
main(){
int a=10,b=20;
swap(&a,&b);
printf(“%d %d”,a,b);
}
输出结果:20 10,20 10
传址:形参的改变不影响实参的值
void swap(int *m,int *n){
int *x;
x=m; m=n; n=x; //这里是形参指针指向的改变,而没有改变实际地址中的值
printf(“%d %d,”,*m,*n);
}
main(){
int a=10,b=20;
swap(&a,&b);
printf(“%d %d”,a,b);
}
输出结果:20 10,20 10