czytałem ten question, chciałem zapytać się więcej o kodzie że pokazał tjPOMYLENIA czasowych i przestrzennych miejscowości w kodzie prawdziwym życiu
for(i = 0; i < 20; i++)
for(j = 0; j < 10; j++)
a[i] = a[i]*j;
pytania są
- Rozumiem tymczasowa lokalność, myślę, że odniesienia do i i j powinny być tymczasową lokalnością. Czy mam rację?
- Rozumiem także położenie przestrzenne, ponieważ pytanie, które łączyłem, odpowiedzi, które odnoszą się do [i] powinny być przestrzenne. Czy mam rację?
Osoba powiedział
„Wewnętrzna pętla zadzwoni sam adres pamięci przy dostępie do [I] dziesięć razy więc to przykład dla miejscowości skroniowej chyba. Ale jest tam lokalizację przestrzenną także w powyższa pętla? "
Nie zgadzam się z jego domysłem. Ponieważ referencje wygenerowane przez [i] powinny być lokalną przestrzenią (będą odnosić się do następnego elementu w bloku). Czy mam rację?
Dzięki za odpowiedź. Czy możesz wyjaśnić moje pojęcia dotyczące zmiennych i lokalizacji. Zmienna j zostanie zwiększona za każdym razem, gdy wykonywana jest pętla wewnętrzna i otrzyma nową wartość. Uzyskanie nowej wartości NIE jest przestrzenną lokalizacją (nawet jeśli wzrasta o 1 za każdym razem)? –
@Akito prawidłowa, przestrzenna lokalizacja może wystąpić tylko pomiędzy dwoma * różnymi * lokalizacjami w pamięci. Ponieważ 'j' odnosi się do tej samej lokalizacji za każdym razem, odniesienia do' j' nie są przestrzennie lokalne. – brc
Czy możesz również rozwinąć termin używane referencje. Co to znaczy? –