2012-07-22 21 views
19

Duplicar posible:
What are the differences between pointer variable and reference variable in C++?
What's the meaning of * and & when applied to variable names?"y" significado después de tipo de variable

Tratando de entender el significado de "&" en esta situación

void af(int& g) 
{ 
    g++; 
    cout<<g; 
} 

Si usted llama a esto functio ny pase el nombre de la variable: actuará igual que en el void(int g) normal. Lo sé, cuando escribes &g eso significa que estás pasando la dirección de la variable g. Pero, ¿qué significa en esta muestra?

+0

Puede encontrar esa información en una forma detallada, ya ha respondido [aquí] (http://stackoverflow.com/questions/57483/what-are-the-differences-between-pointer-variable-and-reference-variable-in-c). – chris

+0

actúan como lo normal? has probado 'af (v); af (v); '? –

+7

Es una referencia, y si no sabes de qué se trata, te recomiendo que leas un libro en C++. –

Respuesta

22

Significa que está pasando la variable por referencia.

De hecho, en una declaración de un tipo, que significa de referencia, al igual que:

int x = 42; 
int& y = x; 

declara una referencia a x, llamado y.

15

El & significa que la función acepta la dirección (o de referencia) a una variable, en lugar del valor de la variable.

Por ejemplo, tenga en cuenta la diferencia entre esto:

void af(int& g) 
{ 
    g++; 
    cout<<g; 
} 

int main() 
{ 
    int g = 123; 
    cout << g; 
    af(g); 
    cout << g; 
    return 0; 
} 

Y esto (sin el &):

void af(int g) 
{ 
    g++; 
    cout<<g; 
} 

int main() 
{ 
    int g = 123; 
    cout << g; 
    af(g); 
    cout << g; 
    return 0; 
} 
+6

"El & significa que la función acepta la dirección" ... ummm ... no ... –

+0

Solo señalando [void main] (http: // stroustrup .com/bs_faq2.html # void-main). – chris

+0

'void main()' está bien. No hay nada malo con esto Por supuesto, supongo que este es un código incompleto (también echa de menos "#include"), por lo que habrá un 'namespace lulz {...}' alrededor de su 'void main'. –

Cuestiones relacionadas