Практическое руководство. Увеличение и уменьшение указателей (руководство по программированию в C#)
Обновлен: Ноябрь 2007
Используйте операторы увеличения и уменьшения, ++ и --, для изменения положения указателя на значение sizeof (pointer-type) применительно к указателю, имеющему тип "тип указателя*". Выражения увеличения и уменьшения принимают следующую форму:
++p;
P++;
--p;
p--;
Операторы увеличения и уменьшения можно применять к указателям любого типа, кроме типа void*.
Результатом применения оператора увеличения к указателю типа pointer-type является добавление значения sizeof (pointer-type) к адресу, содержащемуся в переменной указателя.
Результатом применения оператора уменьшения к указателю типа pointer-type является вычитание значения sizeof (pointer-type) из адреса, содержащегося в переменной указателя.
При переполнении в результате выполнения этой операции домена указателя исключений не генерируется, а результат зависит от конкретной реализации.
Пример
В этом примере выполняется перемещение по массиву путем увеличения значения переменной указателя на размер типа int. После выполнения каждого шага отображается адрес и содержимое элемента массива.
// compile with: /unsafe
class IncrDecr
{
unsafe static void Main()
{
int[] numbers = {0,1,2,3,4};
// Assign the array address to the pointer:
fixed (int* p1 = numbers)
{
// Step through the array elements:
for(int* p2=p1; p2<p1+numbers.Length; p2++)
{
System.Console.WriteLine("Value:{0} @ Address:{1}", *p2, (long)p2);
}
}
}
}
Value:0 @ Address:12860272
Value:1 @ Address:12860276
Value:2 @ Address:12860280
Value:3 @ Address:12860284
Value:4 @ Address:12860288
См. также
Основные понятия
Руководство по программированию в C#
Ссылки
Выражения указателей (Руководство по программированию на C#)
Управление указателями. (Руководство по программированию в C#)
Типы указателей (руководство по программированию в C#)
Оператор fixed (Справочник по C#)