nie wiem o co Ci chodzi bo piszesz dość chaotycznie, ale jeśli o ostatni argument printf (i[s]):
Jeśli piszesz w C++ (nie wygląda, ale różne rzeczy dzisiaj ludzie robią) - kompatybilność wsteczna z C.
Jeśli piszesz w C - masz to ładnie rozpisane w Twoim kodzie :>
char s[]; int i;
s[i]
czyli odwołanie do indeksu tablicy, to to samo co to (tak jest rozumiane przez kompilator)
char *s; int i;
s[i]
tzn. s jest wskaźnikiem.
Teraz, jest to równoważne takiemu zapisowi:
*(s + i)
Co jest oczywiście tym samym co:
*(i + s)
I teraz tadam: zmieniamy to w taki sam sposób jak za pierwszym razem (język na to pozwala, ponieważ notacja [] w C jest tylko lukrem składniowym dla arytmetyki wskaźników):
i[s]
Ot, taka ciekawostka, chociaż nie polecam stosowania w prawdziwym kodzie :>.