IntPtr.Addition Operator (IntPtr, Int32)

.NET Framework (current version)

Adds an offset to the value of a pointer.

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

public static IntPtr operator +(
	IntPtr pointer,
	int offset


Type: System.IntPtr

The pointer to add the offset to.

Type: System.Int32

The offset to add.

Return Value

Type: System.IntPtr

A new pointer that reflects the addition of offset to pointer.

The Addition method defines the addition 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)
       IntPtr ptr = new IntPtr(parr);
       for (int ctr = 0; ctr < arr.Length; ctr++)
          IntPtr newPtr = ptr + ctr * sizeof(Int32);
          Console.Write("{0}   ", Marshal.ReadInt32(newPtr));
// The example displays the following output:
//       2   4   6   8   10   12   14   16   18   20         

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

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

Universal Windows Platform
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1
Return to top