ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Estructuras Y Punteros


Enviado por   •  1 de Febrero de 2015  •  1.595 Palabras (7 Páginas)  •  231 Visitas

Página 1 de 7

Estructuras y punteros

Estructuras

Las estructuras son un conjunto de datos agrupados que forman una entidad lógica. También se dice que son una agrupación de variables bajo un mismo nombre (o que se referencia bajo un mismo nombre). El formato general es el siguiente:

struct tipo_estructura

{

tipo nombre_var;

...

tipo nombre_var;

}

variable_estructura;

Definiendo una estructura llamada fecha.

struct fecha

{

int dia; /* Elementos de la estructura */

int mes;

int a;

}

d; /* Nombre de la variable */

/* fecha es el nombre de la estructura */

Formato Descripción

struct fecha {...}; Se define el nombre de la estructura fecha y la descripción,

pero no se ha definido ninguna variable.

struct {....} j; No se le ha dado nombre a la estructura, pero si se ha definido

una variable j la cual tiene una descripción que está definida

entre { y }.

struct X s; Se declara una variable llamada s, cuya definición del

contenido es X. (El que fue o debe ser previamente definido).

struct X a,b,c; Se declaran 3 variables, todas con la estructura X.

Otras formas de definir una estructura.

Se pueden realizar operaciones con los miembros de las estructuras y no con la estructura en su conjunto. La única operación que se puede hacer es & (cálculo de dirección). Al aplicárselo a la estructura devuelve la dirección del primer byte (octeto) que ocupa la estructura. Para referenciar los elementos individuales de la estructura, se usa el operador punto (.).

variable_estructura.nombre_elemento

Accesando los elementos de una estructura.

#include <string.h>

void main()

{

struct direccion{

char calle[25];

int numero;

char nombre[30];

} d;

strcpy(d.calle,"Avd. Alemania");

d.numero=2010;

strcpy(d.nombre,"Fulano");

}

Se pueden realizar operaciones si los elementos son de tipo numérico.

void main()

{

struct complex { float x; float y;} x;

float modulo;

x.x=0.5;

x.y=10.0;

modulo=sqr(x.x*x.x+x.y*x.y);

}

En el caso de ser requerido pueden definirse matrices o arrays, es decir:

struct direccion dir[100];

Para acceder a ella se puede hacer de la siguiente forma:

dir[1].numero= 1002;

Punteros a estructuras

Si se desea acceder a un miembro concreto de la estructura debe utilizarse un puntero de dirección. El formato para acceder es el siguiente:

nombre_puntero->nombre_elemento

Declaración de un puntero a estructura.

struct direccion{

char calle[25];

int numero;

char nombre[30];

}

d;

void main()

{

struct direccion *p; /* puntero a estructura */

.....

}

/* En este caso no hay ninguna variable definida */

Forma de acceder a una estructura mediante un puntero.

#include<string.h>

struct direccion {

char calle[25];

int numero;

char nombre[30];

};

void main()

{

struct direccion d, *p; /* se declara d */

p=&d; /* p contiene la direccion del primer byte de d */

strcpy(p->calle,"Avd. Alemania");

p->numero=2010;

strcpy(p->nombre,"Fulano");

.....

}

Estructuras de bits

El lenguaje C permite manipular y definir campos de longitud inferior a un byte. O sea, permite acceder a un bits individual dentro de un byte.

Si el almacenamiento es limitado (RAM), se pueden definir y almacenar varias variables booleanas dentro de un byte. Algunos periféricos devuelven la información codificada dentro de un byte. La forma general de definir estos campos de bits es:

struct

...

Descargar como (para miembros actualizados)  txt (9.6 Kb)  
Leer 6 páginas más »
Disponible sólo en Clubensayos.com