Algoritmo

Solo disponible en BuenasTareas
  • Páginas : 7 (1744 palabras )
  • Descarga(s) : 0
  • Publicado : 2 de junio de 2011
Leer documento completo
Vista previa del texto
INVESTIGACION
REPRESENTACION DE UN APUNTADOR

Un apuntador es una variable que contiene la dirección en memoria de otra variable. Se pueden tener apuntadores a cualquier tipo de variable.
El operador unario o monádico & devuelve la dirección de memoria de una variable.

El operador de indirección o de referencia * devuelve el ``contenido de un objeto apuntado por un apuntador''.Para declarar un apuntador para una variable entera hacer:
int *apuntador;
Se debe asociar a cada apuntador un tipo particular. Por ejemplo, no se puede asignar la dirección de un short int a un long int.

APUNTADORES Y FUNCIONES

Cuando C pasa argumentos a funciones, los pasa por valor, es decir, si el parámetro es modificado dentro de la función, una vez que termina la función el valorpasado de la variable permanece inalterado.
Hay muchos casos que se quiere alterar el argumento pasado a la función y recibir el nuevo valor una vez que la función ha terminado. Para hacer lo anterior se debe usar una llamada por referencia, en C se puede simular pasando un puntero al argumento. Con esto se provoca que la computadora pase la dirección del argumento a la función.

Existe unarelación estrecha entre los punteros y los arreglos. En C, un nombre de un arreglo es un índice a la dirección de comienzo del arreglo. En esencia, el nombre de un arreglo es un puntero al arreglo.
Como se puede observar en el ejemplo la sentencia a[t] es idéntica a ap+t. Se debe tener cuidado ya que C no hace una revisión de los límites del arreglo, por lo que se puede ir fácilmente más alla delarreglo en memoria y sobre escribir otras cosas.

Sin embargo los apuntadores y los arreglos son diferentes:

Un apuntador es una variable. Se puede hacer ap = a y ap++.
Un arreglo NO ES una variable. Hacer a = ap y a++ ES ILEGAL.
Este parte es muy importante, asegúrese haberla entendido.

Con lo comentado se puede entender como los arreglos son pasados a las funciones. Cuando un arregloes pasado a una función lo que en realidad se le está pasando es la localidad de su elemento inicial en memoria.

Arreglos de apuntadores

En C se pueden tener arreglos de apuntadores ya que los apuntadores son variables.
A continuación se muestra un ejemplo de su uso: ordenar las líneas de un texto de diferente longitud.
Los arreglos de apuntadores son una representación de datos quemanejan de una forma eficiente y conveniente líneas de texto de longitud variable.

PRECEDENCIA DE OPERADORES DE APUNTADORES

La interpretación de cualquier expresión en C++ está determinada por la precedencia y asociatividad de los operadores en dicha expresión. Cada operador tiene una precedencia, y los operadores en una expresión se evalúan en orden de mayor a menor precedencia. Laevaluación de operadores con la misma precedencia viene determinada por su asociatividad. Y, al igual que en matemáticas, los paréntesis anulan las reglas de precedencia.
En la siguiente tabla se listan los operadores en C++, su precedencia y su asociatividad. Los operadores se listan en orden de prioridad decreciente (los situados más arriba tienen mayor prioridad). Los operadores en la misma líneahorizontal tienen la misma precedencia.

Operador Propósito Asociatividad
:: Scope (unario) De derecha a izquierda
:: Scope (binario) De izquierda a derecha
-> . Selección de miembros De izquierda a derecha
[] Índices De izquierda a derecha
() Llamada a función De izquierda a derecha
++ Postincremento De izquierda a derecha
-- Postdecremento De izquierda a derecha
sizeofTamaño de un objeto De derecha a izquierda
++ Preincremento De derecha a izquierda
-- Predecremento De derecha a izquierda
* & + - ! ~ Operadores unarios De derecha a izquierda
new Crea un objeto De derecha a izquierda
delete Borra un objeto De derecha a izquierda
() Conversión de tipo (type cast) De derecha a izquierda
->* .* Puntero a un miembro De izquierda a...
tracking img