Originariamente inviato da MItaly
Tra l'altro, il fatto che valga questa definizione per l'operatore [] con uno qualunque degli operandi interi e l'altro puntatore consente di scrivere espressioni apparentemente assurde come:
codice:
int arr[10];
cin>>arr[1];
cout<<1[arr]; // stampa il numero appena inserito
infatti
codice:
arr[1] = *(arr + 1) = *(1 + arr) = 1[arr]
dato che anche nelle somme con puntatori vale la proprietà commutativa.
Queste espressioni assurde (non solo apparentemente, ma anche psicologicamente!xD) erano proprio il tassello mancante nelle mie conoscenze! Grazie dei chiarimenti!