【发布时间】:2011-05-10 13:59:13
【问题描述】:
我应该在什么时候在我的函数/方法中传递指向数据的指针,而不是仅仅传递值?
显然在某些情况下我希望函数对给定数据进行操作,但如果我只是为了信息/复制目的而传递值呢?
例如 foo 作为基本类型:
void setFoo(int foo);
...
int foo = 1;
setFoo(foo);
现在 foo 作为一个简单的结构:
typedef struct {
int x;
int y;
} Foo;
void setFoo(Foo foo);
...
Foo foo = {1, 2};
setFoo(foo); // Apple code does this kind of thing with CGSize, CGPoint...
但是如果 foo 是一个更大的结构怎么办...
typedef struct {
int x;
int y;
int z;
char str[256];
} Foo;
void setFoo(Foo *foo); // Now taking a pointer instead.
...
Foo foo = {1, 2, 3, etc ... };
setFoo(&foo);
问。在向函数提供数据时,我应该从什么时候开始使用指针?
谢谢
【问题讨论】:
标签: c++ c parameter-passing