PUNTEROS PROGRAMACION EN C

Páginas: 5 (1179 palabras) Publicado: 3 de febrero de 2015
Programación I. Ing° Juan José Zambrano

MEMORIA.


La memoria es un conjunto de celdas contiguas donde se almacenan
datos.
1 2 3 4 5 6 7 8 9 A B C D E F



La unidad de memoria más pequeña es el bit.



El byte es un conjunto de
8 bits. Unidad de memoria.
1 0 1 1 0 0 1 1



El lugar (ubicación) de cada byte es único y es su dirección.



Si los bytes sonconsecutivos la dirección se ira incrementando
171
186
137
99
secuencialmente.
Celda: Valor Decimal

10101011

10111010

10001001

1100011

Celda: Valor Binario
Dirección:0xC100
Dirección +1: 0xC101



Dirección + 3: 0xC103

Cada celda tiene dos valores asociados: Dirección y Contenido.
1

VARIABLES







Declaramos: “int n=1523, m=121;”
Contenido:



Dirección:





n  1523
m  121

Valor: 121

0000000

01111001

Dirección: C100

Valor: 1523
00000101

11110011

Dirección: C102

Programacion I. Ing° Juan José
Zambrano



Una variable es una porción de memoria identificada por un
nombre.
El tipo de dato define su representación binaria y longitud.
Tiene tres valores asociados: Nombre, Contenido y
Dirección.&n  C102
&m  C100

Es contenido binario se codifica (bits) de acuerdo al tipo de
variable.

2

TIPOS DE VARIABLES


El tipo de variable establece:
 Rango de valores que maneja.
 Codificación binaria del dato.
 Cantidad de memoria requerida.

Declaración

Bytes

Valor en Memoria Hexa

Valor en Memoria Binario

char c = ‘X’;

1

58

1011000

char w[ ] = “hola”;4+1

68 6F 6C 61 00

01101000 01101111 01101100
01100001 00000000

int n[5] = {555,444,333,222,111}

5x2=10

02 2B 01 BC 01 4D 00 DE 00 6F

00000010 00101011 00000001 10111100
00000001 01001101 00000000 11011110
00000000 01101111

long l[3] = {100,200,300}

3x4=12

00 00 00 64 00 00 00 C8 00 00 01
2C

00000000 00000000 00000000 01100100
00000000 00000000 0000000011001000
00000000 00000000 00000001 00101100

float f = 3.141592
 En

49 0F D8 de almacenaje es1000000010010010000111111011000
todos los 4casos la 40
dirección
“&variable”.

Programación I. Ing° Juan José Zambrano

3

PUNTEROS











“int n;” declara una variable entera (16 bits / 2 bytes)
“int *j;” declara un puntero tipo entero (solo almacena direcciones).“j” contiene una dirección donde comienza un entero.
“*j” valor entero almacenado en la dirección apuntada por “j”
(indirección).

Programacion I. Ing° Juan José
Zambrano



Un puntero es una variable cuyo contenido es una dirección.
Como todas las variable tiene nombre, contenido y dirección.
Un puntero “apunta a”: un dato, un array, un objeto, una función, etc.

n  contenido=“valordel entero”
j  contenido=“valor de la
dirección”.
&n  dirección
del entero
“n”
*j suponemos
 contenido
en la dirección de
Representamos
“int en
n=40,
*j=&n;”
que se almacenan:
“j”.
n en la dirección 0xA010 y

Lugar: 2 byte donde esta
almacenado n

Lugar: 2 byte donde esta
almacenado j
j0xA010

Dirección: &j0xF234

j en la dirección 0xF234

Valor *j=n  40Dirección: j  &n 0xA010

4

ALGEBRA DE PUNTEROS











“long n[ ]={40,30,20,10}, *j=n;”
j se inicializa con &n[0]

40

30

20

j
 &n[0]  0xA010  *j =40
j++  &n[1]  0xA014  *j =30
j+2  &n[3]  0xA01C  *j =10
Si hacemos j=n;

Dirección:
0xA010

Dirección +4
0xA014

*(j+2)  n[2]  20




Programacion I. Ing° Juan José
Zambrano



Lospunteros se usan como cualquier otra variable.
Su comportamiento es de acuerdo al tipo definido.

10

Dirección + 12
0xA01C

Valor apuntado por j más 2 posiciones
Como j es tipo long incrementará 8 (4*2) bytes
El incremento depende del tipo.
5




j Tiene un lugar de memoria para su contenido.
j esta almacenada en &j, ocupa 8/16/32/64 bits de acuerdo al micro.

PUNTEROS...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Punteros en c++
  • Punteros en lenguaje c
  • C sharp Manejo de Punteros
  • Ejemplos De Punteros En C++
  • Informatica Programacion Punteros
  • programación c++
  • programacion C
  • Programacion c++

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS