如何:递增和递减指针(C# 编程指南) - C# 编程指南

返回介绍

如何:递增和递减指针(C# 编程指南)

发布于 2019-11-12 字数1768 浏览 838 评论 0

使用增量和减量运算符 ++ 和 — 可以将 pointer-type* 类型的指针的位置改变 sizeof (pointer-type)。增量和减量表达式的形式如下:

  复制代码
++p;
P++;
--p;
p--;

增量和减量运算符可应用于除 void* 类型以外的任何类型的指针。

对 pointer-type 类型的指针应用增量运算符的效果是将指针变量中包含的地址增加 sizeof (pointer-type)。

对 pointer-type 类型的指针应用减量运算符的效果是从指针变量中包含的地址减去 sizeof (pointer-type)。

当运算溢出指针范围时,不会产生异常,实际结果取决于具体实现。

示例

此示例通过将指针增加 int 的大小来遍历一个数组。对于每一步,此示例都显示数组元素的地址和内容。

C#  复制代码
// compile with: /unsafe

C#  复制代码
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# 编程指南)指针类型(C# 编程指南)unsafe(C# 参考)fixed 语句(C# 参考)stackalloc(C# 参考)

其他资源

类型(C# 参考)

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!