2012-05-24 196 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

嘗試通過 '結構人*誰'。