Вопрос:
void swap (int v[], int k)
{
int temp;
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
}
Мой вопрос: почему int v[]
добавляется $t1
?(кто бы это ни сделал, он даже не прокомментировал это, так что я предполагаю, что $a0
- это v[]
, а $a1
- k
).
Ответ в мипсах:
swap: sll $t1, $a1, 2
add $t1, $a0, $t1
lw $t0, 0($t1)
lw $t2, 4($t1)
sw $t2, 0($t1)
sw $t0, 4($t1)
jr $ra
Я знаю, что это используется для обмена переменными, но что он делает здесь, почему он добавляет v[]
с k
?Разве v[]
не является массивом объявленных переменных, как вы можете добавить его с целым числом k
?