编写如下代码:
char[] arr = new char[5];
arr[0] = 'a';
arr[1] = 'b';
arr[2] = 'c';
arr[3] = 'd';
arr[4] = 'e';
arr数组的内存布局如下:
f4 16 33 79 05 00 00 00 61 00 62 00 63 00 64 00 65 00 00 00上面05 很好理解,应该是字符的数量,在后面是字符的数据,我不懂前四字节代表什么意思?
char[] arr = new char[5];
arr[0] = 'a';
arr[1] = 'b';
arr[2] = 'c';
arr[3] = 'd';
arr[4] = 'e';
arr数组的内存布局如下:
f4 16 33 79 05 00 00 00 61 00 62 00 63 00 64 00 65 00 00 00上面05 很好理解,应该是字符的数量,在后面是字符的数据,我不懂前四字节代表什么意思?
下同
void Main()
{
char[] arr = new char[5];
arr[0] = 'a';
arr[1] = 'b';
arr[2] = 'c';
arr[3] = 'd';
arr[4] = 'e';
Console.WriteLine(arr);
}
IL_0001: ldc.i4.5
IL_0002: newarr System.Char
IL_0007: stloc.0
IL_0008: ldloc.0
IL_0009: ldc.i4.0
IL_000A: ldc.i4.s 61
IL_000C: stelem.i2
IL_000D: ldloc.0
IL_000E: ldc.i4.1
IL_000F: ldc.i4.s 62
IL_0011: stelem.i2
IL_0012: ldloc.0
IL_0013: ldc.i4.2
IL_0014: ldc.i4.s 63
IL_0016: stelem.i2
IL_0017: ldloc.0
IL_0018: ldc.i4.3
IL_0019: ldc.i4.s 64
IL_001B: stelem.i2
IL_001C: ldloc.0
IL_001D: ldc.i4.4
IL_001E: ldc.i4.s 65
IL_0020: stelem.i2
IL_0021: ldloc.0
IL_0022: call System.Console.WriteLine