Puntatore a vettore

di il
4 risposte

Puntatore a vettore

Dato il codice sottostante
non riesco a capire perchè
la riga 8 stampa 1 al posto di zero,
ho notato che cio dipende dalla chiamata a funzione "f",
ma non mi so spiegare come "f" vada a influenzare il contenuto
del terzo elemento del vettore.
Se qualcuno gentilmente puo illuminarmi, grazie.

void f(int *a) {
a[1]=++a[3];
}
int main ()
{
/*1*/ int x[5]={14, 7, -4};
/*2*/ printf("%d\n", x[4]);
/*3*/ printf("%d\n", x[3] && (x[1] = 4));
/*4*/ printf("%d\n", x[1]);
/*5*/ printf("%d\n", x[3]);
/*6*/ f(x);
/*7*/ printf("%d\n", x[1]);
/*8*/ printf("%d\n", x[3]);
/*9*/ system ("pause");
return 0;
}

4 Risposte

  • Re: Puntatore a vettore

    A me sembra evidente. Questa

    ++a[3]

    aumenta di 1 il valore di x[3] che, se era a 0, diventa 1.
  • Re: Puntatore a vettore

    Grazie, non ero ancora arrivata agli operatori di incremento decremento postfissi e suffissi
  • Re: Puntatore a vettore

    Ah ... pensavo (secondo una mia logica evidentemente sbagliata) che, dovendo commentare un codice, si fosse già studiato tutto quello che veniva impiegato nel codice stesso ...
  • Re: Puntatore a vettore

Devi accedere o registrarti per scrivere nel forum
4 risposte