2013-03-13 2 views
10

In den Beispielen, die ich sah, wie die Argumente durch Bezugnahme auf die folgende Art und Weise geführt wurden:Wo kaufmännisches Und "&" kann gesetzt werden, wenn Argument durch Referenz übergeben wird?

void AddOne(int &y) 

In dem Code, den ich habe ich die folgende Syntax sehen:

void AddOne(int& y) 

Ich frage mich, ob es derselbe oder der zweite Fall unterscheidet sich irgendwie von dem ersten.

+6

Leerzeichen in C++ spielt keine Rolle. Du könntest AddOne (int & y) 'void machen, wenn du willst. – chris

+2

@chris: Das stimmt nicht genau. 'unsignedint' und' unsigned int' sind unterschiedliche Folgen von Token. Aber der Code in dieser Frage unterscheidet sich nicht in den Token. –

+1

Für was es wert ist, denke ich, die zweite Option ist klarer; 'int &' ist die Art von 'y'. – JSQuareD

Antwort

17

Beide sind genau gleich. Kein Unterschied.

Alles, was zählt, ist, dass & zwischen dem Typ und der Variable Name sein sollte. Leerzeichen sind nicht wichtig.

So

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

sind gleich!

+3

sowie 'int & y' (keine Leerzeichen). –

+1

@BenVoigt: Yup. – Nawaz

2

Es ist das gleiche für die Sprache, nur verschiedene Code-Konventionen

0

Es gibt keine Unterschiede zwischen

void AddOne(int &y); 

und

void AddOne(int& y); 

und sogar

void AddOne(int&y); 

in C++, da die Leerzeichen zwischen den tatsächlichen Token verworfen.

Verwandte Themen