我有一些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)
第一:
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指向数组)
无论如何,你应该熟悉指针.
| 归档时间: |
|
| 查看次数: |
400 次 |
| 最近记录: |