punteros

Páginas: 8 (1799 palabras) Publicado: 15 de abril de 2013
Punteros en C/C++

Punteros en C/C++

Metodología de la Programación II

Tema 1
1.3.1 Nociones elementales
1.3.1.1 Que es una variable?
Una computadora opera manipulando direcciones de memoria y los valores almacenados en
dichas direcciones. Un lenguaje de programación es una herramienta que permite al programador
codificar operaciones binarias en un lenguaje mas cercano a nuestraslenguas naturales. Un
programa que realiza la traducción de instrucciones desde un lenguaje de programación dado al
lenguaje de maquina es un compilador.
Una variable es un recurso, entre otros, para manipular un dato binario de modo mas legible. Una
variable es un identificador, al igual que el nombre de una función, este NOMBRE representa
para la maquina una localidad de memoria donde elprograma puede almacenar y manipular un
dato.
Una declaración de variable como:
int var;
produce una asociación entre el nombre 'var' y un espacio de almacenamiento en memoria. Por lo
tanto hay dos elementos relacionados con el nombre 'var': un valor que se puede almacenar allí y
una dirección de memoria para la variable, algunos autores se refieren a estos dos aspectos como
el "rvalue" y"lvalue" de la variable.
Además del identificador "var", tenemos la palabra "int" que nos indica el TIPO (type) de la
variable. El tipo nos indica:
1. CUANTAS CELDAS DE MEMORIA (bytes) se asocian a ese nombre de variable.
2. DE QUE MODO SERAN INTERPRETADOS los datos que se encuentren en tal
localidad de memoria.
• Un byte es la menor unidad de información que pueden direccionar la mayoría de
lascomputadoras. En la mayoría de las arquitecturas el tipo char ocupa un solo
byte, por lo tanto es la unidad mínima. Un bool admite solo dos valores diferentes,
pero es almacenado como un byte. El tipo integer ocupa generalmente 2 bytes, un
long 4, double 8, y así con el resto de los tipos.
• El otro punto es la relación entre LO QUE HAY en una celda de memoria y
COMO ES INTERPRETADO. Lo quehay en una celda cuya extensión es un byte
es simplemente un conjunto de ocho estados posibles (8 bits) que a nivel hardware
admiten dos estados diferenciales, estados que pueden ser interpretados como
'verdadero / falso', 0/1, o cualquier otro par de valores. Una celda de memoria del
sector de datos, podría contener algo como lo siguiente:

Que es esto? Depende en gran parte del TIPO (type)que hayamos asociado a esa celda (y
suponiendo que exista tal asociación). Ese valor interpretado como un hexadecimal es 0x61, en
decimal es 97, y si fue asociada al tipo char representara la letra 'a', cuyo Ascii es igual a 97. En
36

Dpl. Ing. Carlos Balderrama Vázquez

Punteros en C/C++
ninguna localidad de memoria hay algo como la letra 'a', lo que encontramos son valores binariosque en caso de estar asociados a char y en caso de que lo saquemos en pantalla como char hará
que veamos encendidos ciertos pixeles de pantalla, en los cuales reconoceremos una
representación de la letra 'a'.
La representación binaria de datos ocupa demasiado espacio, por ese motivo es preferible utilizar
el sistema hexadecimal, además de ser muy fácil de traducir a binario es mas económico queeste
o el decimal. Observar los bytes de un sector de memoria de un programa facilita la comprensión
sobre el modo en que cada tipo (type) se asocia a direcciones de memoria.
Supongamos un programa que declara, define e inicializa las siguientes variables:
int main()
{
int a = 5;
long b = 8;
char cad[ ]= "abcd";
char ch = '6';
char hh = 6;
etc....
La representación de estos datos enmemoria, en el segmento de datos, tal como lo muestra un
debugger, tendrá el siguiente aspecto (se omiten caracteres problemáticos para navegadores y
dejamos constancia que diferentes compiladores pueden ordenar los datos de otro modo):
ffd0 ........................
ffe0 ............6abcd..
fff0 .......................

20 20 20 20 00 8F 12 00 00 00 F6 FF BC 04 00 FF
F6 F6 00 00 F6 FF C7...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Punteros
  • Puntero
  • Punteros
  • Punteros
  • Punteros
  • Punteros
  • Los Punteros Laser
  • el puntero

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS