Indeksowanie tablicy

0
#include <stdio.h>

int main()
{
 int tab[] = {1, 2, 3, 4};

 printf ("%d", 3[tab]);
 return 0;
}

Nie potrafię pojąć konstrukcji 3[tab] - jest poprawna (czy raczej: GCC przepuszcza ten kod: http://ideone.com/Hdqfy8), lecz wygląda imho dziwnie.
3[tab] jest tym samym, co tab[3] czy jak to działa?

1

Bo dodawanie jest przemienne.

tab[3] to jest *(tab + 3) a 3[tab] to jest *(3 + tab). Wszystko się zgadza.

0

Ok, dzięki - po prostu pierwszy raz spotkałem się z taką konstrukcją i zrobiłem niemałe WTF ;P

0

Podobnie:

 std::cout << 1["Ala ma kota"] << std::endl; 

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