c# - C# 中的指针递增和链接优先级

标签 c# pointers

我在其中一篇msdn文章中看到了这段C#代码:

using System; class Test
{
   public static unsafe void Main() 
   {
      int* fib = stackalloc int[100];
      int* p = fib;
      *p++ = *p++ = 1;
      for (int i=2; i<100; ++i, ++p)
         *p = p[-1] + p[-2];
      for (int i=0; i<10; ++i)
         Console.WriteLine (fib[i]);
   }
}

我对指针还很陌生。我理解大部分代码,但如果有人能帮助我更详细地理解上面代码中的这一行,那就太好了:

*p++ = *p++ = 1 

最佳答案

这只是一种懒惰的(其他人会说是惯用的)写法

*p++ = 1;
*p++ = *p++;

或者,也许更好理解:

*p=1;
p++;
*p=1;
p++;

关于c# - C# 中的指针递增和链接优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3222600/

相关文章:

c - 8 位输入给出奇怪的行为,因为 16/32 位给出小端/大端

c++ - 如何判断 std::vector 是否调整了自身大小,以及如何解释指向 vector 内值的指针不再有效?

c++ - 强制转换 void 指针以检查内存对齐情况

Python:如何增加 ctypes POINTER 实例

c - 类型限定符(const)和复杂声明

c# - asp.net c# 中的 Mysql 命令

c# - 频谱分析仪用于输入?

c# - 使用 Javascript 根据另一个控件条目验证 asp.net c# 控件

c# - ToList 和 Find 实现

c# - 从 C# 控制台应用程序使用 Edge.js