Używając wskaźnika do tablicy, zawsze uzyskiwałem dostęp do elementów za pomocą indeksera, na przykład myPtr[i] = stuff
; jednak ostatnio szukałem ponad BitConverter
's implementation i odkryłem, że dostęp do elementów odbywa się poprzez: *(myPtr + i) = stuff
.Jaka jest różnica między ptr [i] a * (ptr + i)?
Co uważałem za dość dziwne, ponieważ obie metody (z tego, co wiem) robią dokładnie to samo, to znaczy zwracają adres myPtr + i
, z tym wyjątkiem (moim zdaniem) metoda indeksowania wygląda o wiele bardziej czytelnie.
Dlaczego firma Microsoft zdecydowała się na inkrementację wskaźników tak, jak to zrobili, jaka jest różnica między tymi dwiema metodami (czy są korzyści z wydajności)?
Generują tę samą IL. To tylko kwestia stylu. –
Metoda "ToBoolean" jest świetna. Komentarze nie pasują do kodu, a ma świetne "x == 0? false: true' wzór zamiast zwykłego 'x! = 0'. – CodesInChaos