Safe Swap : Pointer « unsafe « C# / CSharp Tutorial






using System;
using System.Globalization;

public class MainClass{

  public static void SafeSwap(ref int i, ref int j)
  {
    int temp = i;
    i = j;
    j = temp;
  }

  static void Main(string[] args)
  {
    int i = 10, j = 20;
    
    Console.WriteLine("Values before safe swap: i = {0}, j = {1}", i, j);
    SafeSwap(ref i, ref j);
    Console.WriteLine("Values after safe swap: i = {0}, j = {1}", i, j);
  }
}
Values before safe swap: i = 10, j = 20
Values after safe swap: i = 20, j = 10








36.3.Pointer
36.3.1.Declaring a Pointer
36.3.2.IntPtrs and unsafe bit-twiddling
36.3.3.The & is a unary operator that returns the memory address of its operand
36.3.4.Use fixed to put address of value into a pointer
36.3.5.Demonstrate the effects of pointer arithmethic
36.3.6.An array name with an index yields a pointer to the start of the array
36.3.7.Index pointer
36.3.8.Pointer arithmetic
36.3.9.Get a pointer to the start of a string and display the contents of string via pointer
36.3.10.Pointer of a pointer
36.3.11.Assign value of myInt using pointer
36.3.12.Safe Swap
36.3.13.Unsafe swap
36.3.14.C# Pointer Operators
36.3.15.Modifying an Immutable String with Pointer
36.3.16.Pointer Arithmetic