1. 定义一个数组指针,int32[] v_0
2. 将数组长度移到堆栈顶,ldc.i4.6
3. 为其分配空间,newarr [mscorlib]system.int32
这下明白了c#中的数组为什么要通过两个步骤来定义了吧。其原因就在于在c#中我们是把数组放到托管堆上,而在c++中使用(int number[6])数组不是放在堆上的。il能做c#不能做到的事情,如数组的下界可以不从0开始等(下次有机会写个例子j)。
为数组元素赋值,需要四个步骤,
1. 将数组指针移到栈顶,ldloc.0
2. 将数组元素的index移到栈顶,ldloc.1