Wskaźnik na pierwszy element tablicy

0

Witam,
chciałem się upewnić w następującej kwestii:
Mam tablicę dynamiczną typu:

int* tab = new int[10];

Wskaźnik tab jest pierwszym elementem tablicy.

Czy w związku z powyższym mogę bez przeszkód wyłuskiwać pierwszy element tablicy tj. np.:

*tab = 10;

czyli analogicznie do:

tab[0] = 10;

?
Jakby co to kompilator nie pokazuje błędu i takie coś działa - pytam tylko na przyszłość czy to jest prawidłowe...

1

Możesz.

4

*(wskaźnik+liczba) jest równoznaczne wskaźnik[liczba] (oraz liczba[wskaźnik]), czyli w Twoim przykładzie *tab jest równoznaczne *(tab+0), które jest równoznaczne tab[0]

Standard C++:

§ 5.2.1 Subscripting
A postfix expression followed by an expression in square brackets is a postfix expression. One of the expressions shall have the type “pointer to T” and the other shall have unscoped enumeration or integral type. The result is an lvalue of type “T.” The type “T” shall be a completely-defined object type. 62 The expression E1[E2] is identical (by definition) to *((E1)+(E2)) [Note: see 5.3 and 5.7 for details of * and + and 8.3.4 for details of arrays. —end note ]

1 użytkowników online, w tym zalogowanych: 0, gości: 1