Programación General > C/C++

 Duda con puntero a función en lenguaje C.

<< < (2/2)

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

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa