高手帮忙下啊!在C++中,值传递,指针传递和引用传递有什么不同啊?有什么共同的地方吗?

来源:百度知道 编辑:UC知道 时间:2024/09/20 22:33:31
0x的右值传递??哦,不懂啊.

举个例子:

void swap(int a, int b)//值传递方式参数会创建副本,不能达到改变参数的目的,同时如果参数是大数据结构,创建副本会影响效率
{
int t = a;
a = b;
b = t;
}

void swap(int &a, int &b)//引用参数,不会产生副本,直接修改了实参,效率高
{
int t = a;
a = b;
b = t;
}

void swap(int *a, int *b)//同样也创建副本,但是也能改变实参,同时如果参数是大数据结构,效率较值传递高
{
int t = *a;
*a = *b;
*b = t;
}

嗯,还有C++ 0x的“右值绑定传递”马山要出来了。