【发布时间】:2010-04-27 20:12:06
【问题描述】:
我在下面尝试了一个示例:
typedef struct point
{
int x;
int y;
} point;
void cp(point p)
{
cout<<p.x<<endl;
cout<<p.y<<endl;
}
int main()
{
point p1;
p1.x=1;
p1.y=2;
cp(p1);
}
打印出来的结果是:
1
2
这是我所期望的。我的问题是:参数 p 是否获得对象 p1 的完整副本?如果是这样,我想知道这是否是一个好习惯? (我假设当结构体变大时,会产生大量的复制开销)。
【问题讨论】:
-
关于按值传递和按引用传递之间的差异和权衡还有许多其他问题。例如。 stackoverflow.com/questions/2627166/…
-
在 C++ 中,您不需要执行
typedef struct point {...} point;。只需struct point {...};。
标签: c++ function struct overhead