C++值传递,引用传递,指针传递

值传递的话,传递的是值,而不是地址,值只能从实参传递到形参,修改形参的值并不能改变实参的值,即无“反馈机制”。

引用传递,引用又是函数的别名,因此引用对象即函数对象本身,因为参数里是引用的话,就是实参本身,改变它也会改变实参的地址。

指针传递,指针指向的是实参的地址,因为通过指针操作的,也可以改变实参的地址。

下面是具体代码例子:

#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
void change1(int n)//值传递地址
{ cout<<&n<<endl;
n++;
}
void change2(int &n)//引用传递
{ cout<<&n<<endl;
n++;
}
void change3(int *n)//指针传递
{cout<<n;
*n++;
}
int main(int argc, char* argv[])
{ int n=10;
int &a=n;
int *b=&n;
cout<<&n<<endl;
change1(10);
change2(a);
change3(b);

}

这里面,第一个和3,4结果一样,就第二个值传递地址不是实参的地址。

posted @ 2012-02-08 20:20  RINA  阅读(305)  评论(0)    收藏  举报