17

私が見た例では、引数は次のように参照によって渡されました。

void AddOne(int &y)

私が持っているコードでは、次の構文が表示されます。

void AddOne(int& y)

同じなのか、2番目のケースが最初のケースとどういうわけか違うのかしら。

4

4 に答える 4

26

どちらもまったく同じです。まったく違いはありません。

重要なのは、変数名の&間にある必要があるということです。スペースは関係ありません。

それで

void AddOne(int&  y);
void AddOne(int  &y);
void AddOne(int & y)
void AddOne(int   &     y);
void AddOne(int&y);

同じです!

于 2013-03-13T16:03:01.217 に答える
2

言語についても同じですが、コード規則が異なるだけです

于 2013-03-13T16:02:31.300 に答える
1

間に違いはありません

void AddOne(int &y);

void AddOne(int& y);

そしてさえ

void AddOne(int&y);

C ++では、実際のトークン間の空白が破棄されるため。

于 2013-03-13T16:32:46.570 に答える
1

それはスタイルの問題です。どちらも正しく有効です。

ただし、Bjarne Stroustrupは、変数の型を強調して、型名の横に&と を配置することを好むようです。*

int* i;   // i is a pointer to an int 
int& j;   // j is a reference to an int

ポインタについては、https ://www.stroustrup.com/bs_faq2.html#whitespaceを参照してください。

「C++を使用したプログラミングの原則と実践」の本の例と参照先についてはこちらをご覧ください:https ://stackoverflow.blog/2019/10/11/c-creator-bjarne-stroustrup-answers-our-top-five-c-questions //

于 2020-07-27T14:42:54.470 に答える