page contents

C语言函数参数传递之值传递和地址传递

函数调用时需要注意函数参数传递是值传递(传值)还是地址传递(传地址)。 传值:形参不影响实参的值 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
  • 发表于 2021-04-19 16:07
  • 阅读 ( 610 )
  • 分类:C/C++开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
小威
小威

64 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1470 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章