یک اشاره گر چیزی جز یک متغیر که آدرس حافظه یک نوع دیگر را در خود ذخیره می کند نیست .
در سی شارپ اشاره گر ها فقط می توانند آدرس حافظه ی آرایه ها و نوع های مقداری مانند int را در خود نگهداری کنند .
بر خلاف نوع های مرجع ، انواع اشاره گر ها توسط مکانیزم زباله روب کنترل نمی شوند .
تعریف یک اشاره گر:
type *variable_name;
مثال:
int *x ;
اشاره گر x می تواند آدرس یک متغیر از نوع صحیح را در خود نگهداری کند
از علامت & برای دریافت آدرس حافظه یک متغیر استفاده می شود
int x = 100;
هم اکنون &x آدرس متغیر x را بر می گرداند و می توان آن را در یک اشاره گر قرار داد
مثال:
int *ptr = & x;
دستور زیر آدرس حافظه متغیر x را نمایش می دهد – مثلا 6523 (آدرس خانه ای از حافظه)
Console.WriteLine((int)ptr)
و دستور زیر مقدار داخل آدرس حافظه را نمایش می دهد – یعنی 100
Console.WriteLine(*ptr)