Hola, algo sencillo pero tengo dudas.
Una variable pasada como parámetro en una función y que quiero que cambie su valor.
ES ASI?????
main()
{
int variable = 0;
funcion(&variable);
}
funcion(int *var)
{
*var = 2;
}
| |||
Referencia Hola, algo sencillo pero tengo dudas. Una variable pasada como parámetro en una función y que quiero que cambie su valor. ES ASI????? main() { int variable = 0; funcion(&variable); } funcion(int *var) { *var = 2; } |
| |||
Respuesta: Referencia seria asi en c++:
Código C++:
Ver original |
| ||||
Respuesta: Referencia Cita: Sólo tendría que decir que le falta el tipo de retorno a la función main, que debe ser int.
Iniciado por jobu seria asi en c++:
Código C++:
Ver original
__________________ % El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla. % |
| ||||
Respuesta: Referencia Cita: Lo que menciona el compañero MaRcElTeLlA no es del todo cierto, pués un arreglo siempre pasa por referencia y no por valor.
Iniciado por MaRcElTeLlA Hola, bueno, en C++ tienes un par de maneras de hacer que una variable obtenga el valor al modificarla. 1. Usando punteros. Si tu lo que le metes a la función es un puntero. Al modificar el contenido de ese puntero(donde apunta), modificarás directamente la variable que quieres. void cambiandoValor(int* i) { *i = 3; //Decimos, (*i) dónde apunta i, por eso el *, le asignamos el valor 3. // i sigue siendo una dirección de memoria por eso, pero estas modificando su contenido } 2.Pasando la variable por referencia void cambiandoValor(int& i) { i=3; } En esta segunda función directamente haces lo que tú querias. Qué ventaja hay en hacer esto respecto a quitarle el &?? Bien, cuando es un int no hay problema, pero si no pones el & lo que estas haciendo es una copia de todo lo que le entres a la función, y imagina que lo que le metes en lugar de ser un int es un array de imàgenes, con todos sus píxeles y todos sus canales y demás, claro para copiar eso se morirá, y la performance se verá muy afectada. Por esa razon cuando se trabaja con datos grandes y tal está bien pasarlo por referencia (&) Bueno, espero que te sirva chico, si hay alguna otra duda o algo no te ha quedado claro, comenta.
__________________ % El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla. % |
Etiquetas: |