C# Language Passing Pointers as Parameters to Methods


You can pass a pointer variable to a method as parameter. The following example illustrates this:

using System;
namespace UnsafeCodeApplication
   class TestPointer
      public unsafe void swap(int* p, int *q)
         int temp = *p;
         *p = *q;
         *q = temp;
      public unsafe static void Main()
         TestPointer p = new TestPointer();
         int var1 = 10;
         int var2 = 20;
         int* x = &var1;
         int* y = &var2;
         Console.WriteLine("Before Swap: var1:{0}, var2: {1}", var1, var2);
         p.swap(x, y);

         Console.WriteLine("After Swap: var1:{0}, var2: {1}", var1, var2);

When the above code is compiled and executed, it produces the following result:

Before Swap: var1: 10, var2: 20
After Swap: var1: 20, var2: 10