Programación General > C/C++
Duda con puntero a función en lenguaje C.
herzdark:
--- Cita de: ProfesorX en Viernes 27 de Septiembre de 2013, 01:12 ---
Claro, es mucho mas eficiente trabajar directamente con las variables que con una copia, aunque hay algo que debes tener en cuenta, todo depende de lo que necesites hacer, si no vas a realizar modificaciones en los valores, o si los modificas, pero no te afecta en el resultado que debas obtener, entonces puedes usar directamente apuntadores. Si vas a realizar modificaciones en los valores pero por alguna razon te afecta el resultado que necesitas obtener, o necesitas conservar los valores anteriores, entonces necesitas trabajar con una copia si o si.
--- Fin de la cita ---
tenes bastante razon igualmente ya por habito cualquier struct la paso con apuntadores y si por alguna razon no desea modifarlo uso la palabra const y para lo otro la trato de usar local asi vive dentro de la vida util de la función
--- Cita de: ProfesorX en Viernes 27 de Septiembre de 2013, 01:12 ---
--- Cita de: DanielC# ---Porque tu código utilizas los *(* contiene el valor de la variable y & contiene la dirección de memoria de la misma)sin declarar y asignar los apuntadores y funciona?.-
--- Fin de la cita ---
No entendi bien la pregunta, podrias elaborarla o explicarla mejor?
--- Fin de la cita ---
si no entendi mal el esta hablando sobre esto
--- Código: C ---void suma(int *a, int *b, int *res){ *a = 10; *b = 10; *res = *a + *b;}
el asterisco (*) delante de cualquier variable tipo puntero significa que el contenido de la posición de memoria que tiene
para que lo entiendas hagamoslo a lo criollo:
suponiendo que en la memoria principal la variable A del main esta en la posición 0x100 y cuando uno llama a una función el compilador crea una porción de memoria para esa invocación y la variable local de la función que se llama A esta en la pos 0x1010 entonces al hacer *a=10 seria decir esto debe asignar 10 al contenido de la variable A pero A es un puntero a una porcion de memoria, entonces toma el contenido de esa variable que es 100 y en esa posición guarda un 10, en otras palabras es una asignación indirecta
DanielC#:
Hola a todos.
Bien lo entendí viendo otros ejemplos y con la ayuda de Uds. Lo tengo claro.-
Gracias y saludos.
Daniel
Navegación
[*] Página Anterior
Ir a la versión completa