如何:遞增和遞減指標 (C# 程式設計手冊)
使用遞增和遞減運算子 (++ 和 --),可以藉由 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);
}
}
}
}