您的位置:首页 > 编程语言 > C语言/C++

C语言值传递问题

2014-03-20 22:43 246 查看
 大一开始学的C语言,大三复习了一遍,现在又复习了一遍才弄懂值传递问题

指针传递

demo1

void swap(int a ,int b ){
int temp;
temp=a;
a=b;
b=temp;
}
demo2
void swap(int *a,int *b){
int *temp;
temp=a;
a=b;
b=temp;
}


demo1和demo2两者实现的原理都是一样的,都是单向的值传递,形参的改变并不会影响到实参的改变。

demo3

void swap(int *a,int *b){
int temp;
temp=*a;
*a=*b;
*b=temp;
}

demo3实现的并不是简单地将实参直接传入,而是将实参传入函数时,将a所指向的变量的值变为b所指向的变量的值,同理,b所指向的值变为a所指向的值。

改变不是a或者b的地址,而是将a或b地址所指向的数据进行交换。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C语言