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

Punteros en el lenguaje de programación C


Enviado por   •  11 de Junio de 2021  •  Tarea  •  1.735 Palabras (7 Páginas)  •  62 Visitas

Página 1 de 7

Karla Dorely Hernandez Becerra 11A  13-14

Preguntas

  1. Qué es un puntero en el lenguaje de programación C?

        Un puntero es una variable que contiene la dirección de memoria de otra variable. Se usan                 para pasar información entre una función y puntos de llamada. Los punteros permiten                         código más compacto y eficiente; utilizándolos en forma ordenada dan gran flexibilidad a                 la programación.

  1. Como se declara una variable puntero en C?

        La siguiente es la manera de declarar un puntero que apunte a un entero:

        int *x;

        Esto se puede leer «lo apuntado por x es un entero». En este caso, * no es una                                 multiplicación, sino una derreferenciación, como veremos más abajo.

        Una vez declarada x de la manera ya mostrada, los únicos valores válidos que se puede                         asignar a x son NULL o una dirección de memoria donde haya un entero:

        int a, b, c;

        float z;

        int *p;

        int *q;

        

        p = NULL;   /* valido */

        p = &a;     /* valido */

        p = &b;     /* valido */

        p = &z;     /* invalido (z no es un entero) */

        p = 142857; /* invalido (142857 no es una dirección de memoria) */

        q = &b;     /* valido */

        q = p;      /* valido */

        q = NULL;   /* valido */

        q = &p;     /* invalido (p no es un entero) */

        Por supuesto, es posible cambiar int por cualquier otro tipo para declarar punteros a datos         de otra naturaleza.

        Ojo con la siguiente sutileza al declarar varios punteros de una vez:

        int *x, *y;    /* x e y son punteros */

        int *x, y;     /* x es puntero, y es entero */

  1. Qué se entiende por la dirección  de una celda de memoria?

        En informática, una dirección de memoria es un formato de localización de bytes                 de memoria con la cual un programa informático o un dispositivo de hardware                         accede o almacena datos para su posterior utilización.

        Una forma común de describir la memoria principal de un ordenador es como una                 colección de celdas que almacenan datos e instrucciones. Cada celda está                         identificada unívocamente por un número o dirección de memoria.

        Para poder acceder a una ubicación específica de la memoria, la CPU genera                         señales en el bus de dirección, que habitualmente tiene una longitud de 32 bits en                 la mayoría de máquinas actuales. Un bus de dirección de 32 bits permite                                 especificar hasta

        2/32 2^{32} = 4.294.967.296 direcciones de memoria distintas.

        Las direcciones de memoria se expresan a menudo en código hexadecimal. Por                         ejemplo, para expresar el valor binario 111111010100000000000010101100 se                         escribe 0x3F5000AC en hexadecimal.

  1. Como están numeradas normalmente las direcciones de memoria?

para localizar un dato en la memoria principal, la dirección que ocupa éste debe circular por el bus de direcciones. Según cual sea la amplitud del bus de direcciones y la longitud de palabra, así será el tamaño de la memoria que puede gestionar el ordenador. Es decir, el número de casillas o direcciones de memoria que pueden ser indicadas y el tamaño de la información que contienen. Para un bus de direcciones de 8 bits el ordenador podrá gestionar 28 = 256 posiciones de memoria y en cada una de ellas podremos almacenar 8 bits si esta es la longitud de palabra de ese ordenador.

La figura anterior muestra la memoria de un ordenador con una longitud de palabra de 8 bits y un bus de direcciones también de 8 bits. Deberían existir 28 = 256 casillas - desde la 00000000 hasta la 11111111 (en lenguaje binario), cada una conteniendo un dato de 8 bits de tamaño , en total 256 x 8 = 2048 bits o 256 Bytes. Los datos contenidos en las casillas de memoria no tienen evidentemente ninguna relación con la dirección de estas, ya que van variando conforme se ejecuta el programa o se producen entradas de nuevos datos.

Podemos escribir M = 2 D * P , siendo D la amplitud del bus de direcciones, P la longitud de palabra del ordenador y M la memoria en bits.

...

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