punteros en C#
Resumen
Los punteros son un tipo especial de variables que tiene direcciones de memoria como sus valores. Por ser
una variable, aunque de tipo especial, su declaración no varía de gran forma con lo estudiado hasta el
momento.
Sintaxis:
Pasos para programar con punteros
- Propiedades del proyecto
- Habilitar la opción permitir código no seguro.
Con esas dos opciones ya se puede programar el uso de punters
- habilitar en en propiedades del proyecto
Ejemplo | Descripción |
int* p | p es un puntero a un entero |
int** p | p es un puntero a un puntero o a un entero |
int*[] p | p es una matriz unidimensional de punteros a enteros |
char* p | p es un puntero a un valor char |
void* p | p es un puntero a un tipo desconocido |
Ejemplo en C#
using System;namespace punteros
{
class Program
{
static void Main(string[] args)
{
unsafe
{
int* pi;
int i, val; //declaraciones de variables i,val y el apuntador pi
i = 4; //asignamos un valor para i
pi = &i; //asignamos la direccion de la variable i en el apuntador pi
val = *pi; //asignamos el valor del apuntador pi en la variable val
Console.WriteLine("i= "+i);
Console.WriteLine("*pi= " + *pi);
Console.WriteLine("val= " + val);
Console.WriteLine(" {0:X2}",(int)pi);
Console.ReadLine();
}
Console.ReadKey();
}
}
}
ejemplo 2
using System;
namespace punteros
{
class Program
{
static void Main(string[] args)
{
unsafe
{
int[] datos = { 10, 20, 30 };
Console.WriteLine("Leyendo el segundo dato...");
fixed (int* posicionDato = &datos[1])
{
Console.WriteLine("En posicionDato hay {0}", (int)posicionDato);
}
Console.WriteLine("Leyendo el primer dato...");
fixed (int* posicionDato = datos)
{
Console.WriteLine("Ahora en posicionDato hay {0}", (int)posicionDato);
}
Console.ReadLine();
}
Console.ReadKey();
}
}
}
Comentarios
Publicar un comentario