2001 – 3 bis

Indicare il contenuto del vettore al termine del ciclo

int main()
{
    char V[10]="xxxxxxxxx";
    int  k;
    for(k=0; k < 5; k++)
        (&V[3])[k]='A'+k;
    printf("%s", V);
}

Soluzione: xxxABCDEx


Osserva

  • &V[3][k] è il carattere alla posizione 3+k
  • 'A'+k è il carattere alla posizione k dopo 'A'

quindi

  • V[] = { 'x', 'x',  'x', 'x', 'x', 'x', 'x', 'x', 'x',  '\0' }
  • k = 0
    V[] = { 'x', 'x',  'x', 'A', 'x', 'x', 'x', 'x', 'x',  '\0' }
  • k = 1
    V[] = { 'x', 'x',  'x', 'A', 'B', 'x', 'x', 'x', 'x',  '\0' }
  • k = 2
    V[] = { 'x', 'x',  'x', 'A', 'B', 'C', 'x', 'x', 'x',  '\0' }
  • k = 3
    V[] = { 'x', 'x',  'x', 'A', 'B', 'C', 'D', 'x', 'x',  '\0' }
  • k = 4
    V[] = { 'x', 'x',  'x', 'A', 'B', 'C', 'D', 'E', 'x',  '\0' }