Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - int x, y[10]; x = 4[y];
Forum - C/C++ - int x, y[10]; x = 4[y];

Avatar
bangirasu (Normal User)
Rookie


Messaggi: 39
Iscritto: 15/08/2007

Segnala al moderatore
Postato alle 14:46
Giovedì, 17/01/2008
Da quanto dice il Kernighan/Ritchie un'espressione come questa dovrebbe funzionare.
Codice sorgente - presumibilmente C/C++

  1. int x, y[10];
  2.   x = 4[y];


Naturalemente mi sono stupito e ho provato a compilare un programmino che non fa niente di speciale:
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. int main() {
  3.   int x, y[10];
  4.   x = 4[y];
  5.   printf("%d\n", x);
  6.   return 0;
  7. }


COMPILA E FUNZIONA!
Il mio unico problema è che non capisco assolutamente cosa significa l'assegnazione ad x, qualcuno riesce a spiegarmelo...

PM Quote
Avatar
bangirasu (Normal User)
Rookie


Messaggi: 39
Iscritto: 15/08/2007

Segnala al moderatore
Postato alle 12:04
Venerdì, 25/01/2008
risolto...

dato che y[4] = *(y+4) = *(4+y) = 4[y]
è giusto perchè l'addizione è commutativa.

PM Quote
Avatar
Zani88 (Member)
Pro


Messaggi: 136
Iscritto: 07/05/2006

Segnala al moderatore
Postato alle 12:33
Sabato, 26/01/2008
Il C non finisce mai di stupirmi!


"Una delle principali cause della caduta dell'Impero Romano fu che, privi dello zero, non avevano un modo per indicare la corretta terminazione dei loro programmi C." (Robert Firth)
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6110
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 18:08
Giovedì, 31/01/2008
Interessante, non pensavo fosse possibile farlo.


Seguimi su Twitter: http://www.twitter.com/pierotofy

Fai quello che ti piace, e fallo bene.
PM Quote