A pointer type is defined by specifying a location signature for the location the pointer references. Any signature of a pointer type includes this location signature. Hence, no separate definition of the pointer type is needed.
While pointer types are Reference Types, values of a pointer type are not objects (see Classes, Interfaces and Objects), and hence it is not possible, given a value of a pointer type, to determine its exact type. The VOS provides two typesafe operations on pointer types: one to load the value from the location referenced by the pointer and the other to store an assignment compatible value into that location. The VOS also provides three operations on pointer types (byte-based address arithmetic): adding and subtracting integers from pointers, and subtracting one pointer from another. The results of the first two operations are pointers to the same type signature as the original pointer. See the IL Instruction Set specification for details.
CLS Rule 15: Pointer types are not CLS-compliant.
CLS (consumer): there is no need to support pointer types.
CLS (extender): there is no need to provide syntax to define or access pointer types.
CLS (framework): pointer types must not be externally exposed.