Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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!

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

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


Il mio blog: https://piero.dev
PM Quote