很久没玩指针了,写起来有点困难,但还是实现了:
//必须声明unsafe.
unsafe
{
float* pFloats = stackalloc float[10];
pFloats[0] = 1;
pFloats[1] = 2;
pFloats[2] = 3;
pFloats[3] = 4;
pFloats[4] = 5;
pFloats[5] = 6;
pFloats[6] = 7;
pFloats[7] = 8;
pFloats[8] = 9;
pFloats[9] = 10;
StrTest st;
st.X = pFloats;
for (int i = 0; i < 10; i++)
{
//取数组地址,从0开始.
float f = (float)*(st.X + i); //强制转换为float类型, *符表示取指针的值
Console.WriteLine(f.ToString());
}
}
public unsafe struct StrTest
{
public float* X;
}