






Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
En el presente documento se explica de manera detallada cómo se inicializa un puntero en ambos lenguajes de programación y la diferencia que existe entre ellos
Tipo: Guías, Proyectos, Investigaciones
1 / 11
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!







En programación, un puntero es una variable especial que almacena la dirección de memoria de otra variable. En otras palabras, un puntero "apunta" a la ubicación en memoria de otro objeto, como una variable o una función. Los punteros son utilizados para varios propósitos, entre ellos:
c) Uso de apuntadores: ¿Cómo se utilizan?. En Java, no se utilizan punteros como en lenguajes como C o C++. En su lugar, se utilizan referencias para acceder y manipular objetos en memoria. Aquí tienes dos ejemplos de uso de referencias en Java: Ejemplo 1: MiObjeto obj1 = new MiObjeto(); MiObjeto obj2 = obj1; obj2.setValor(10); System.out.println(obj1.getValor()); // Imprime 10 En este ejemplo, obj1 y obj2 son referencias al mismo objeto. Al modificar el valor del objeto a través de obj2, el cambio también se refleja en obj1 porque ambas referencias apuntan al mismo objeto en memoria. Ejemplo 2: MiObjeto obj = null; if (condicion) { obj = new MiObjeto(); } if (obj != null) { // Realizar operaciones con obj } En este caso, la referencia obj se inicializa con null. Luego, se verifica una condición y, si se cumple, se crea un nuevo objeto y se asigna a obj. Antes de operar con obj, se verifica si es diferente de null para evitar errores de referencia nula. d) Llamadas por valor y referencia: ¿A qué se refiere cada una?, ¿Cuál es la diferencia? En Java, las llamadas a métodos y la asignación de argumentos se realizan por valor. Esto significa que cuando pasas un argumento a un método, se pasa una copia de su valor, no la referencia en sí misma. Esto difiere del paso por referencia que se encuentra en lenguajes como C++. La diferencia entre llamadas por valor y llamadas por referencia radica en cómo se manejan los argumentos y si los cambios realizados en el método afectan o no al valor original.
Ejemplo 1 - Llamada por valor: int numero = 5; incrementar(numero); System.out.println(numero); // Imprime 5 public void incrementar(int n) { n++; } En este caso, se pasa una copia del valor de numero al método incrementar(). Dentro del método, se incrementa el valor de n, pero no afecta a la variable numero original fuera del método. Ejemplo 2 - Llamada por referencia: MiObjeto obj = new MiObjeto(); modificar(obj); System.out.println(obj.getValor()); // Imprime 20 public void modificar(MiObjeto obj) { obj.setValor(20); } En este ejemplo, se pasa una referencia al objeto obj al método modificar(). Dentro del método, se modifica el valor del objeto referenciado por obj, y esto afecta al objeto original fuera del método. Es importante tener en cuenta que en Java solo se pasa la copia de la referencia, por lo que no se puede cambiar la referencia original dentro del método.
c) Uso de apuntadores: ¿Cómo se utilizan? Los punteros en C se utilizan para una variedad de tareas, como:
d) Llamadas por valor y referencia: En lenguaje C, las llamadas a funciones pueden ser por valor o por referencia. Esto afecta cómo se pasan los argumentos y si los cambios realizados en la función afectan o no al valor original: Ejemplo 1: Llamada por valor #include <stdio.h> void incrementar(int num) { num++; printf("Valor dentro de la función: %d\n", num); } int main() { int numero = 5; printf("Valor original: %d\n", numero); incrementar(numero); printf("Valor después de la función: %d\n", numero); return 0; } En este ejemplo, la función incrementar recibe un argumento num por valor. Dentro de la función, se incrementa el valor de num. Sin embargo, esta modificación solo ocurre dentro del ámbito de la función y no afecta a la variable numero en la función main. Al imprimir el valor después de la llamada a la función, se observa que numero no ha cambiado.
Los punteros son una característica fundamental en lenguajes de programación como Java y C, aunque su manipulación y comportamiento pueden variar entre ambos. En términos generales, un puntero es una variable especial que almacena la dirección de memoria de otra variable. Su utilidad radica en su capacidad para acceder y manipular directamente la memoria, permitiendo una mayor flexibilidad y control en la programación. En este ensayo, exploraremos el concepto de punteros, su utilidad y las diferencias que existen en su manejo entre los lenguajes de programación Java y C. Un puntero, de manera general, es una variable que contiene la dirección de memoria de otra variable. Funciona como un enlace o referencia a un objeto o valor almacenado en la memoria. La utilidad de los punteros radica en diversas áreas de la programación:
Chuidiang. (20 de Septiembre de 2005). BlogSpot. Obtenido de Programacion: Cosillas de programación e informática en las que ando metido.: http://chuidiang.blogspot.com/2005/09/los-punteros-de-java.html Dragon, L. (8 de Octubre de 2015). Apuntadores ( Pointer ) en lenguajes de programación orientada a objetos ( Java y C). Obtenido de La cueva del último dragón: https://www.lastdragon.net/?p= EcuRed. (13 de enero de 2012). EcuRed. Obtenido de https://www.ecured.cu/Operadores_de_puntero INAOE. (22 de Octubre de 2019). INAOE. Obtenido de Ciencias computacionales: https://posgrados.inaoep.mx/archivos/PosCsComputacionales/Curso_Propedeutico/Progr amacion_Estructuras_Datos/Capitulo_3_Apuntadores.pdf Instituto Politécnico Nacional de México. (21 de Abril de 2020). Academia de Informática. Obtenido de UPIICSA: http://www.sites.upiicsa.ipn.mx/estudiantes/academia_de_informatica/estructura_y_rd/ docs/u2/Apuntadores%20en%20Java.pdf Lauterbach, C. (Mayo de 2021). Quora. Obtenido de ¿Por qué no se utilizan punteros en Java?: https://es.quora.com/Por-qu%C3%A9-no-se-utilizan-punteros-en- Java#:~:text=Los%20punteros%20de%20Java%20no,no%20apuntar%C3%A1s%20al%20lug ar%20equivocado. Microsoft. (6 de Abril de 2023). Microsoft. Obtenido de Learn: https://learn.microsoft.com/es- es/dotnet/csharp/language-reference/operators/pointer-related-operators Parzibyte. (20 de Septiembre de 2018). Funciones por referencia y por valor en C. Obtenido de Parzibyte's blog: https://parzibyte.me/blog/2018/09/20/funciones-referencia-valor-c/ Parzibyte. (4 de Abril de 2020). Java: parámetros por referencia o valor. Obtenido de Parzibyte's blog: https://parzibyte.me/blog/2020/04/04/java-parametros-referencia-valor/ Picodotdev. (22 de Enero de 2021). Github. Obtenido de En Java, ¿los argumentos se pasan por valor o por referencia?: https://picodotdev.github.io/blog-bitix/2021/01/en-java-los- argumentos-se-pasan-por-valor-o-por-referencia/ Zator Systems. (2016). Zator. Obtenido de Operadores de punteros: https://www.zator.com/Cpp/E4_9_11.htm