Вказівки призначені для зберігання адреси областей пам'яті. Синтаксис оголошення вказівок:
тип* змінна;
Тут тип - це тип величини, на яку указує змінна, тобто величини, що зберігається за записаною в змінній адресою. Тип не може бути класом, але може бути структурою, переліченням, вказівкою, а також одним із стандартних типів: sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal, bool і void. Останнє означає, що вказівка посилається на змінну невідомого типу. Вказівка на тип void застосовується в тих випадках, коли конкретний тип об'єкту, адресу якого потрібно зберігати, не визначений (наприклад, якщо в одній і тій же змінній в різні моменти часу потрібно зберігати адреси об'єктів різних типів). Вказівці на тип void можна привласнити значення вказівки будь-якого типу, а також порівнювати його з будь-якими вказівками, але перед виконанням яких-небудь дій з областю пам'яті, на яку вона посилається, потрібно перетворити його до конкретного типу явним чином. Приклади оголошення вказівок:
int* а; // вказівка на int
Node* pNode; // вказівка на описану раніше структуру Node
void* р; // вказівка на невизначений тип
int*[] m; // одновимірний масив вказівок на int
int** d; // вказівка на вказівку на int
У одному операторові можна описати декілька вказівок одного і того ж типу, наприклад:
int* а, b, с; // три вказівки на int
Величини типу вказівки можуть бути локальними змінними, полями, параметрами і повертаємим значенням функції. Ці величини підпорядковуються загальним правилам визначення зони дії і часу життя.