我在其中一篇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]);
}
}
Run Code Online (Sandbox Code Playgroud)
我对指针很新.我理解这些代码的大部分内容,但是如果有人能够帮助我更详细地理解上面代码中的这一行,那就太棒了:
*p++ = *p++ = 1
Run Code Online (Sandbox Code Playgroud)
这只是一种懒惰(其他人会说是惯用的)写作方式
*p++ = 1;
*p++ = *p++;
Run Code Online (Sandbox Code Playgroud)
或者,或许更好地理解:
*p=1;
p++;
*p=1;
p++;
Run Code Online (Sandbox Code Playgroud)