Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // OrtizOL - xCSw - http://ortizol.blogspot.com
- using System;
- public class BasicosPunteros
- {
- public static void Main()
- {
- Console.WriteLine(Environment.NewLine);
- // Declaración de un arreglo de enteros como objetos
- // (managed code):
- int[] arreglo = new int[5] {100, 200, 300, 400, 500};
- // El uso de punteros requiere marcar la siguiente
- // region con la palabra clave unsafe:
- unsafe
- {
- // Evita que el colector de basura relocalice una variable
- // desplazable:
- fixed(int* puntero1 = &arreglo[0])
- {
- // Creación de un nuevo puntero para incrementar la ubicación de memoria:
- int* puntero2 = puntero1;
- // Muestra el valor de la memoria apuntada por `puntero2`:
- Console.WriteLine(*puntero2);
- // Incrementa en 1 la región de memoria apuntada por `puntero2`:
- puntero2 += 1;
- // Se muestra el valor del segundo elemento de `arreglo`:
- Console.WriteLine(*puntero2);
- // Incrementa en 1 la región de memoria apuntada por `puntero2`:
- puntero2 += 1;
- // Se muestra el valor del tercer elemento de `arreglo`:
- Console.WriteLine(*puntero2);
- Console.WriteLine("-----------");
- // Se muestra el valor actual apuntado por `puntero1`:
- Console.WriteLine(*puntero1);
- // Incrementa en una unidad el valor de la región de memoria
- // apuntada por `puntero1`:
- *puntero1 += 1;
- // Muestra el valor del primer elemento de `arreglo`:
- Console.WriteLine(*puntero1);
- // Incrementa en una unidad el valor de la región de memoria
- // apuntada por `puntero1`:
- *puntero1 += 1;
- // Muestra el valor del primer elemento de `arreglo`:
- Console.WriteLine(*puntero1);
- }
- }
- Console.WriteLine(Environment.NewLine);
- Console.WriteLine("-----------");
- // Por fuera de la región de código inseguro:
- Console.WriteLine(arreglo[0]);
- Console.WriteLine(Environment.NewLine);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement