Problema esercizio STRUCT in C

di il
4 risposte

Problema esercizio STRUCT in C

ESERCIZIO in C:
Si supponga che le variabili p e q siano dichiarate come segue.
struct point p = {10,20};
struct point *q = &p;
Indicare quali delle seguenti istruzioni sono corrette e quali errate:
(a) p.x += 2; CORRETTA
(b) q->y -= 10; ERRATA
(c) (*q).y *= 3; ERRATA
(d) (*p)->x += 10; CORRETTA
(e) (&p)->x = 1; CORRETTA
(f) (&q)->x = 0; ERRATA

Ho dato queste risposte in base alla traccia, ma non sono del tutto sicuro. Mi potete aiutare?

4 Risposte

  • Re: Problema esercizio STRUCT in C

    Sarebbe stato utile sapere anche stuct point cosa contiene...

    (a) p.x += 2; CORRETTA
    ok

    (b) q->y -= 10; ERRATA (CORRETTA)
    hai sbagliato q è un puntatore e per accedervi bisogna usare -> e non .

    (c) (*q).y *= 3; ERRATA (corretta)
    hai sbagliato q è un puntatore e per accedervi puoi deferenziare il puntatore con (*q) e usare la variabile con .y. quindi quando scrivi q->y == (*q).y

    (d) (*p)->x += 10; CORRETTA (errata)
    errato vedi la spiegazione sopra e in piu p non è un puntatore

    (e) (&p)->x = 1; CORRETTA
    ok

    (f) (&q)->x = 0; ERRATA
    ok
  • Re: Problema esercizio STRUCT in C

    Quindi quando devo accedere a un PTR posso utilizzare solo 'x->y' oppure '(*x).y' , mentre per accedere a un altro elemento CHE NON SIA PTR devo utilizzare 'x.y' oppure '(&x)->y' ?
  • Re: Problema esercizio STRUCT in C

    Esatto.
  • Re: Problema esercizio STRUCT in C

    Grazie mille
Devi accedere o registrarti per scrivere nel forum
4 risposte