C Punteros

Los punteros son variables que solamente contienen direcciones de memoria de otras variables. Existen dos operadores especiales para manejar punteros:

  • & devuelve la dirección de memoria de una variable
  • * devuelve el valor guardado en una dirección de memoria

Para declarar un puntero:

tipo_de_dato *nombre;

Para asignar la dirección de memoria de la variable (var) al puntero (p):

p = &var;

Para asignar el valor guardado en la dirección del puntero (p) a la variable (var):

var=*p;

Las funciones pueden recibir parámetros de dos formas:

  • Por valor: se crea una copia de la variable
  • Por referencia: se pasa un puntero con la dirección de memoria

El pase de parámetros por referencia es más efectivo porque ahorra espacio de memoria y además permite modificar los valores de todos los parámetros sin necesidad de usar valores de retorno.

Ejemplo:

Realizar un programa que sume dos números utilizando una función con paso de parámetros por referencia (punteros) y que no tenga valor de retorno.

Código:

La variable local (res) es modificada desde otra función que sobrescribe un valor en su dirección de memoria dada por el puntero (*r) .

Ejecución del programa: