Documente Academic
Documente Profesional
Documente Cultură
Este artculo proviene de un motor de traduccin automtica. Mueva el puntero sobre las
frases del artculo para ver el texto original. Ms informacin.
Traduccin
Original
En un contexto no seguro, un tipo puede ser un tipo de puntero, un tipo de valor o un tipo de referencia. Una declaracin
de tipos de puntero adopta una de las formas siguientes:
type* identifier;
void* identifier; //allowed but not recommended
Cualquiera de los tipos siguientes puede ser un tipo de puntero:
sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal o bool.
Cualquier tipo de enum.
Cualquier tipo de puntero (pointer).
Cualquier tipo de struct definido por el usuario que slo contenga campos de tipos no administrados.
Los tipos de puntero no se heredan de object y no existe ninguna conversin entre tipos de puntero y object. Adems, las
conversiones boxing y unboxing no admiten punteros. Sin embargo, puede realizar conversiones entre diferentes tipos de
puntero y entre tipos de puntero y tipos enteros.
Cuando declare varios punteros en la misma declaracin, nicamente debe escribir * junto al tipo subyacente, no debe
escribirse como prefijo en cada nombre de puntero. Por ejemplo:
Descripcin
int* p
p es un puntero a un entero
int** p
http://msdn.microsoft.com/es-es/library/y31yhkeb(d=printer).aspx
1/3
14/3/2014
int** p
int*[] p
char* p
void* p
El operador de direccionamiento indirecto de puntero * puede utilizarse para tener acceso al contenido de la ubicacin
sealada por la variable de puntero. Por ejemplo, en la siguiente declaracin:
int* myVariable;
la expresin *myVariabledenota la variable int que se encuentra en la direccin contenida en myVariable.
No se puede aplicar el operador de direccionamiento indirecto a un puntero de tipo void*. Sin embargo, es posible
utilizar una conversin de tipos para convertir un puntero de tipo void en cualquier otro tipo de puntero y viceversa.
Un puntero puede ser null. La aplicacin del operador de direccionamiento indirecto a un puntero nulo (null) da como
resultado un comportamiento definido segn la implementacin.
Tenga en cuenta que el paso de punteros entre mtodos puede provocar un comportamiento no definido. Un ejemplo es
la devolucin de un puntero a una variable local a travs de un parmetro Out o Ref, o como resultado de la funcin. Si el
puntero se estableci en un bloque fijo, es posible que la variable a la que apunta ya no pueda ser fija.
La tabla siguiente muestra los operadores e instrucciones que pueden funcionar sobre punteros en un contexto no seguro:
Operador/instruccin
Utilice
->
[]
Indiza un puntero.
&
++ y --
+y-
stackalloc
fixed (Instruccin)
2/3
14/3/2014
Vea tambin
Referencia
Cdigo no seguro y punteros (Gua de programacin de C#)
Conversiones de puntero (Gua de programacin de C#)
Expresiones de puntero (Gua de programacin de C#)
unsafe (Referencia de C#)
fixed (Instruccin, Referencia de C#)
stackalloc (Referencia de C#)
Conversin boxing y unboxing (Gua de programacin de C#)
Conceptos
Gua de programacin de C#
Otros recursos
Adiciones de comunidad
2014 Microsoft. Reservados todos los derechos.
http://msdn.microsoft.com/es-es/library/y31yhkeb(d=printer).aspx
3/3