Informatica Programacion Punteros

Páginas: 5 (1167 palabras) Publicado: 29 de abril de 2013
Punteros
Un puntero es un tipo de variable que permite almacenar y manipular las direcciones de memoria donde se encuentran almacenados los datos, en lugar de los datos mismos. El manejo de punteros en el lenguaje C es muy poderoso y eficiente, aunque demanda extremo cuidado en su utilización.
Bien utilizado hace que el código sea más compacto y eficiente; por el contrario, su uso descuidadolleva a tener poca claridad y frecuentemente conduce a la pérdida del control de la corrida, ocasionando un comportamiento indeseable del proceso.
El uso de punteros nos permite acceder al valor de una variable en forma indirecta. Para esto se utilizan dos operadores:
& El operador "dirección de memoria de" que permite obtener la dirección de memoria donde se aloja la variable a la cual precede (&x es la dirección de memoria de x).
* El operador "contenido de lo apuntado por" que permite acceder al valor almacenado en la dirección de memoria que indica el puntero al cual precede ( *px es el contenido de lo apuntado por px)
Declaración
Las declaraciones de los punteros se realizan en forma indirecta, declarando el tipo de dato que será apuntado por el mismo. Por ejemplo un puntero aun dato de tipo entero se declara como:
int *px;
Sean además x e y dos variables del tipo entero. Existen dos operadores unarios para usarlos con punteros:
Inicialización
Antes de poder ser utilizado, un puntero debe ser inicializado (como cualquier otra variable). Para inicializar un puntero se puede utilizar:
a. la dirección de memoria de otra variable
int y=2, *py;

py = &y;
b. elvalor de otro puntero ya inicializado.
int y=2, *py = &y, *ppy;
ppy = py;
Pasaje de argumentos por referencia
Supongamos que queremos realizar una función que recibe dos argumentos y que debe retornar como resultado los valores invertidos de las dos variables. Sea por ejemplo la siguiente implementación de esta función:
void Swap(int x, int y)
{
int Temp;

Temp = x;
x = y;
y =temp;
}
El efecto de esta función no es el deseado, ya que las variables son pasadas por valor, es decir que lo que se modifica no son las variables originales, sino copias de ellas. La forma de hacer esta operación es a través del paso de los argumentos por referencia. En C esto se implementa haciendo uso de punteros:
void Swap(int *x, int *y)
{
int Temp;

Temp = *x;
*x = *y;
*y =Temp;
}
Como lo que se están pasando a la función Swap son en realidad direcciones de memoria donde están alojadas las variables originales almacenadas, las modificaciones que se realizan afectan estos valores. La invocación de esta función debe ser de la forma:
Swap(&a,&b);
//Programa que suma un valor a una variable a través de un //puntero.
#include
#include
int main()
{
inta, *p;
a=5;
p=&a;
*p+=7;
printf("\nEl valor final de a es: %d", a);
getch();
}
Estructuras, Typedef, Arreglos de Estructuras


Una estructura es un conjunto de datos, posiblemente de tipos diferentes, agrupadas bajo un mismo nombre, para hacer más eficiente su manejo.
Las estructuras ayudan a organizar datos complicados, particularmente en programas grandes, yaque permiten tratar como una unidad a un conjunto de variables relacionadas, en lugar de tratarlas como entidades independientes.
Un buen criterio de uso de estructuras establece que la definición de una estructura debe ir acompañada por la definición de un conjunto de funciones que se encargan de realizar la manipulación directa de la nueva entidad creada.
Definición de estructuras en Lenguaje CUna estructura se define en lenguaje C a través de la siguiente sintaxis:
struct Nombre
{
tipo1 Campo1;
tipo2 Campo2;
...
tipoN CampoN;
};
La declaración
struct Nombre Var1;
Declara una variable del tipo "struct Nombre", esto es, el compilador reserva la cantidad de memoria suficiente para mantener la estructura íntegra (es decir espacio para almacenar Campo1, Campo2, ...,...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • PUNTEROS PROGRAMACION EN C
  • Programacion informatica
  • informática, programación
  • Informatica Y Programacion
  • Programacion (informatica)
  • Similitud con las ramas de la informatica y la programacion ...
  • Informatica, Lenguajes De Programacion y Editores
  • informatica programacion y parametros

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS