2012-05-24 197 views
1

这似乎是一个简单的问题,但我没有任何运气寻找任何答案,所以在这里。我有一个具有char * name和int age的struct Person。我有以下方法:参考作为参数C

void Person_messup(struct Person &who) { 
    who.name="asdfasdf"; 
    who.age = 9001; 
} 

编译此代码给我下面的错误:

error: expected ; , or) before & token 

我可以实现上述就好使用指针,甚至传递对象结构,但我有麻烦与这个特定的实现。谢谢您的帮助!

+6

C中没有引用,也许你的意思是C++。 –

+0

那么,只需使用' - >'而不是'.' ... – Imp

回答

8

c中没有引用 - 将结构作为指针传递。

void Person_messup(Person *who) { 
    who->name="asdfasdf"; // or really strcpy! 
    who->age = 9001; 
} 

(或C++使用!)

+0

哦,男人-_-非常感谢。这就是我在两者之间来回切换的结果; – lululoo

+0

@lululoo - 我确实必须检查他们没有被添加到C11中。就个人而言,我在C++中避免非const参数,这太类似于副作用 –

0

尝试通过 '结构人*谁'。