2013-03-13 10 views
10

Negli esempi che ho visto gli argomenti sono stati passati per riferimento nel seguente modo:Dove la e commerciale "&" può essere inserita quando si passa argomento per riferimento?

void AddOne(int &y) 

Nel codice che ho io vedo la seguente sintassi:

void AddOne(int& y) 

mi chiedo se è lo stesso o il secondo caso è in qualche modo diverso dal primo.

+6

Gli spazi bianchi in C++ non contano. Si potrebbe fare "svuotare AddOne (int & y)" se lo si desidera. – chris

+2

@chris: Non è esattamente vero. 'unsignedint' e' unsigned int' sono diverse sequenze di token. Ma il codice mostrato in questa domanda non differisce nei token. –

+1

Per quello che vale, penso che la seconda opzione sia più chiara; 'int &' è il tipo di 'y'. – JSQuareD

risposta

17

Entrambi sono esattamente lo stesso. Nessuna differenza.

Tutto ciò che conta è che & dovrebbe essere tra il tipo e la variabile nome . Gli spazi non contano.

Così

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

sono uguali!

+3

così come 'int & y' (senza spazi). –

+1

@BenVoigt: Yup. – Nawaz

2

E 'lo stesso per la lingua, le convenzioni di codice solo diversi

0

Non vi sono differenze tra

void AddOne(int &y); 

e

void AddOne(int& y); 

e anche

void AddOne(int&y); 

in C++, le spaziature tra gettoni reali vengono scartati.

Problemi correlati