将C指针语句转换为它们的C#等价物

Mic*_*kus 1 c c#

我有一些C代码,我试图转换成C#代码,我正在运行我不熟悉的指针,所以我不知道C#等价.我得到一些帮助吗?

案例1:在C中给出这三行,如何在C#中声明p?

double snorm[169];
double *p = snorm;
*p = 1.0;
Run Code Online (Sandbox Code Playgroud)

案例2:我不知道指针实际上是做什么的,所以我不知道如何将这一行改为C#.

*(snorm+n) = *(snorm+n-1) * (double)(2*n-1) / (double)n;
Run Code Online (Sandbox Code Playgroud)

J0H*_*0HN 5

第一:

double[] snorm = new double[169];
snorm[0] = 1.0;
Run Code Online (Sandbox Code Playgroud)

而不仅仅是使用snorm而不是p.

第二:

snorm[n] = snorm[n-1] * (double)(2*n-1)/(double)n;
Run Code Online (Sandbox Code Playgroud)

基本上*p意味着您将值取在内存地址处,由引用p.增加和添加指针正在将指针移动到内存中,因此p++,(p+1)只是引用内存中的下一项(它在内存中移动的程度取决于指针指向的数据类型).并且,*(p+n)只是数组中第n项的值(如果p指向数组)

无论如何,你应该熟悉指针.