你能告诉我a[i] = a[a[i]]
是如何运作的吗?
int[] a = new int[10]
for(int i =0; i < 10; i++)
a[i] = 9 - i
for(int i =0; i < 10; i++)
a[i] = a[a[i]]
for(int i =0; i < 10; i++)
答案 0 :(得分:1)
for loop
完成执行后的这个数组看起来像
a[0]|a[1]|a[2]|a[3]|a[4]|a[5]|a[6]|a[7]|a[8]|a[9]
| | | | | | | | |
9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
________________________________________________
...并在第二个for循环完成后执行 这个数组如何看起来像
a[0]|a[1]|a[2]|a[3]|a[4]|a[5]|a[6]|a[7]|a[8]|a[9]
| | | | | | | | |
0 | 1 | 2 | 3 | 4 | 4 | 3 | 2 | 1 | 0
<强>更新强>
快速查看后{p>a[i]=i
与a[i]=[a[i]]
相同,但不是a array
...第二个循环中a array
中的前四个元素将由旧a array
中的最后四个元素更改,因此我们更改了.MODEL SMALL
.STACK 1000H
.CODE
MAIN PROC
MOV DX, 0002H
MOV CX, 0064H
BODY:
MOV DX, 0002H
MOV BX, 0064H
SUB BX, CX
MOV AX, BX
DIV DL
CMP AH, 1H
JNE GO
PRINT:
MOV AX, BX
ADD AX, 0H
AAA
OR AX, 3030H
ROL AX, 1
ROL AX, 1
ROL AX, 1
ROL AX, 1
ROL AX, 1
ROL AX, 1
ROL AX, 1
ROL AX, 1
MOV DL, AL
MOV AH, 2H
INT 21H
MOV AX, BX
ADD AX, 0H
AAA
OR AX, 3030H
MOV DL, AL
MOV AH, 2H
INT 21H
GO: LOOP BODY
MAIN ENDP
END
中前四个元素的最后四个元素将与第一个相同,但在向后