IntPtr.Subtraction Operator

.NET Framework 4.6 and 4.5

Subtracts an offset from the value of a pointer.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

public static IntPtr operator -(
	IntPtr pointer,
	int offset
)

Parameters

pointer
Type: System.IntPtr

The pointer to subtract the offset from.

offset
Type: System.Int32

The offset to subtract.

Return Value

Type: System.IntPtr
A new pointer that reflects the subtraction of offset from pointer.

The Subtraction method defines the subtraction operation for IntPtr objects. It enables code such as the following.

int[] arr = { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
unsafe {            
   fixed(int* parr = &arr[arr.GetUpperBound(0)])
   {
      IntPtr ptr = new IntPtr(parr);
      for (int ctr = 0; ctr <= arr.GetUpperBound(0); ctr++)
      {
         IntPtr newPtr = ptr - ctr * sizeof(Int32);
         Console.Write("{0}   ", Marshal.ReadInt32(newPtr));
      }
   }
}   
// The example displays the following output: 
//       20   18   16   14   12   10   8   6   4   2      

Languages that do not support custom operators can call the Subtract method instead.

The subtraction operation does not throw an exception if the result is too small to represent as a pointer on the specified platform. Instead, it is performed in an unchecked context.

.NET Framework

Supported in: 4.6, 4.5, 4

.NET Framework Client Profile

Supported in: 4

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone Silverlight 8.1, Windows Phone Silverlight 8

Portable Class Library

Supported in: Portable Class Library
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2015 Microsoft