Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Otros ejemplos:
float *q; /*apuntador hacia un flotante*/
char *z; /*puntero que contiene la dirección de una variable que guarda un
carácter */
Ahora bien, para guardar la dirección de alguna variable, en un puntero se tiene &-
>Operador de Dirección.
P1=&a;
6.1 Representación de un apuntador
Declaración de un Puntero
tipo [near] ¦ [far] *variable;
Ejemplo:
int *a;
float far *k;
int near *b;
Resolución de ámbito ::
Subíndice de matriz []
Llamada de función ()
Incremento de postfijo ++
Decremento de postfijo --
Incremento de prefijo ++
Decremento de prefijo --
Complemento de uno ~
Negación unaria -
Dirección de &
Direccionamiento *
indirecto
Cast ()
Multiplicación *
División /
Módulo %
Suma +
Resta -
Desplazamiento a la
<<
izquierda
Desplazamiento a la
>>
derecha
Igualdad ==
Desigualdad [!=](../cpp/equality-operators-equal-equal-and-exclpt-
equal.md)
TABLA 1
Descripción del
Operador
operador
Y lógico &&
O lógico ||
Instrucción ?:
Asignación =
Asignación de *=
multiplicación
Asignación de división /=
Asignación de módulo %=
Asignación de suma +=
Asignación de resta -=
Asignación de <<=
desplazamiento a la
TABLA 1
Descripción del
Operador
operador
izquierda
Asignación de >>=
desplazamiento a la
derecha
Asignación or inclusivo |=
bit a bit
Asignación OR exclusiva ^=
bit a bit
Coma ,
6.3 llamadas por referencia
Hay dos formas de pasar argumentos por referencia: llamado por referencia con
argumentos de referencia y llamado por referencia con argumentos de apuntador.
Los apuntadores pueden servir para pasar apuntadores a objetos de datos
grandes, evitando la sobrecarga de pasar los objetos mediante llamadas por valor.
En el caso de arrays, el nombre de estos es la localidad inicial del mismo en
memoria (el nombre del arreglo es equivalente a &nombre arreglo [0]). Veremos
los parámetros de referencia que son otra forma de pasar argumentos por
referencia.
Para indicar que el parámetro de una función se pasa por referencia colocamos un
& después del tipo del parámetro en el prototipo de la función.
Utilizamos la misma convención en el tipo del encabezado de la función. Veamos
el ejemplo de intercambio, la declaración de la función sería:
void intercambio (int &x, int &y)
{
int temp;
temp=x;
x=y;
y=temp;
}
en la llamada de la función, mencionamos la variable por nombre y esta será
pasada por referencia, por ejemplo:
intercambio(a,b)
En el cuerpo de la función llamada, la variable es mencionada por su nombre de
parámetro. Esto hará referencia a la variable original del invocador, la cual puede
ser modificada en la función llamada. El prototipo de la función debe coincidir con
su encabezado
Las referencias también pueden servir como alias de otras variables, por ejemplo:
int count=1; /* declara variable entera count */
int &cref = count; /* crea cref como alias de count */
++cref; /* incrementa count (utilizando su alias) */
las variables de referencia deben inicializarse en sus declaraciones. Una vez que
una referencia se declara como alias de otra variable todas las operaciones
realizadas sobre el alias se realizan en la variable original. El alias simplemente es
otro nombre de la variable.
6.4 utilización de apuntadores
Los apuntadores son una parte fundamental de C. Si usted no puede usar los
apuntadores apropiadamente entonces esta perdiendo la potencia y la flexibilidad
que C ofrece básicamente. El secreto para C esta en el uso de apuntadores.
C, usa los apuntadores en forma extensiva. ¿Por qué?
Es la única forma de expresar algunos cálculos.
Se genera código compacto y eficiente.
Es una herramienta muy poderosa.
C, usa apuntadores explícitamente con:
Es la única forma de expresar algunos cálculos.
Se genera código compacto y eficiente.
Es una herramienta muy poderosa.
C, usa apuntadores explícitamente con:
Arreglos,
Estructuras y
Funciones
El uso de apuntadores en C y C++ es muy importante debido a que permite hacer
los programas más eficientes y más flexibles. En este artículo se explica de una
manera sencilla y breve todo lo referente a la utilización de apuntadores tanto en C
como en C++.
Todo lo explicado en este artículo aplica tanto para C como para C++, a menos
que se especifique un lenguaje en particular. En algunos ejemplos de código que
son aplicables a C aparecen instrucciones de entrada y salida de las librerías
estándar de C++.
CONCLUSIÓN
los punteros son una herramienta indispensable para los sistemas embebidos. Un
sólido conocimiento de punteros y la habilidad de utilizarlos eficientemente hace la
diferencia entre un programador novato y uno experto. Ellos proporcionan soporte
para asignación de memoria dinámica y agregan otra dimensión al control de flujo
en un programa.
Los punteros tienen varios usos, incluyendo:
Crean código eficiente y rápido
Proporcionan asignación de memoria dinámica
Hacen expresiones compactas y concisas
Protegen datos pasados como parámetros a una función
Proporcionan la capacidad de pasar estructuras de datos mediante un
puntero sin ocasionar un exceso de código conocido como “overhead”
Los punteros crean código eficiente y rápido ya que están más cerca del
hardware. Esto significa que el compilador puede traducir más fácilmente la
operación en código máquina.
Bibliografía:
https://www.cimat.mx/~alram/cpa/pointersC.pdf
http://agora.pucp.edu.pe/inf2170681/8.htm
https://utch2009.files.wordpress.com/2010/04/apuntadores.pdf
http://www.disc.ua.es/~gil/punteros.pdf
https://docs.microsoft.com/es-es/cpp/cpp/cpp-built-in-operators-
precedence-and-associativity?view=vs-2019
https://www.fing.edu.uy/tecnoinf/mvd/cursos/eda/material/teo/ED
A-teorico7.pdf
http://odin.fi-b.unam.mx/salac/practicasEDAA/eda1_p2.pdf
https://codingornot.com/01-apuntadores-la-memoria-de-tu-
computadora
http://dignal.com/importancia-de-utilizar-punteros-en-lenguaje-c/