Punteros En C++

Páginas: 5 (1203 palabras) Publicado: 21 de noviembre de 2012
C/C++

Punteros. Dirección. In dirección. Aritmética de direcciones.

Índice.








Revisando conceptos acerca de la
memoria.
Las variables en los programas.
Punteros y direcciones.
Aritmética de punteros.
Estructuras y Uniones.
Extendiendo los conceptos a funciones.

C/C++

Punteros. Dirección. In dirección. Aritmética de direcciones.

Memoria.


La memoriaes un conjunto de celdas contiguas donde se almacenan datos.
1




2



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



3

0

1

1

0

0

1

1

El lugar (ubicación) de cada byte es único y es su dirección.
Si los bytes son consecutivos la direcciónse ira incrementando
secuencialmente.
171
186
137
99
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.

C/C++

Punteros. Dirección. In dirección. Aritmética de direcciones.

Variables


Una variable es unaporció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.



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




Valor: 121


Contenido:





Dirección:





n  1523
m  121
&n  C102
&m  C100

0000000

01111001

Dirección: C100

Valor: 1523
0000010111110011

Dirección: C102

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

C/C++

Punteros. Dirección. In dirección. Aritmética de direcciones.

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 enMemoria 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 012C

00000000 00000000 00000000 01100100
00000000 00000000 00000000 11001000
00000000 00000000 00000001 00101100

float f = 3.141592

4

40 49 0F D8

1000000010010010000111111011000



En todos los casos la dirección de almacenaje es “&variable”.

C/C++

Punteros. Dirección. In dirección. Aritmética de direcciones.

Punteros













Un puntero esuna 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.
“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 ladirección apuntada por “j” (indirección).
n  contenido=“valor del entero”
&n  dirección del entero en “n”

j  contenido=“valor de la dirección”.
*j  contenido en la dirección de “j”.

Representamos “int n=40, *j=&n;” suponemos que se almacenan:

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  40

Dirección: j  &n 0xA010

C/C++

Punteros. Dirección. In dirección. Aritmética de direcciones.

Algebra de punteros












Los punteros se usan como cualquier otra variable.
Su comportamiento es de acuerdo al tipo definido.
“long n[ ]={40,30,20,10}, *j=n;”
j se inicializa con &n[0]

40

30




...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Punteros en lenguaje c
  • C sharp Manejo de Punteros
  • PUNTEROS PROGRAMACION EN C
  • Ejemplos De Punteros En C++
  • Punteros En C++
  • Punteros en c
  • Puntero c++
  • Punteros en c++

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS