|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Mar 2008
Messaggi: 24
|
[C] qualcuno sa spiegarmi cm si risolve??
ciao a tutti,lunedì ho l'esame di informatica,guardando le prove d'esame ho trovato in tutte esercizi di questo tipo:
Sia data la seguente espressione C esibire una dichiarazione che la rende possibile, altrimenti motivare l’impossibilità: x.a[3].b = x.a[4].c[1] qualcuno sa spiegrami in modo semplice cm si risolve???? e soprattutto perchè da questo risultato??? typedef struct {int b, c[3];} INTE; typedef struct {INTE a[6];} A; A x; nn ci capisco niente |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
|
Non è un esercizio difficile, devi solo ragionare un po'...
Ad esempio, sai che x è una struttura, ed il suo campo a è a sua volta una struttura che deve avere almeno due campi: b e c, che è un array. Per semplicità facciamo finta che si tratti di interi (in ogni caso il tipo della variabile b e dell'array c devone essere compatibile poichè c'è "in ballo" un'assegnazione). Dunque la prima cosa da fare è definire la struct più interna: Codice:
typedef struct Interna {
int b;
int c[10]; //O comunque un numero a tuo piacere;
} Interna;
Codice:
typedef struct Esterna {
Interna a[10]; //Anche qui puoi usare un numero a piacere
} Esterna;
Codice:
Esterna x; x.a accede all'array "Interna a[10]", di cui ogni elemento contiene un campo b intero ed un campo c array di interi. Quindi hanno senso tanto x.a.b, tanto x.a.c[i]. Tra l'altro, il tipo di c e il tipo di b sono compatibili e dunque x.a[3].b = x.a[4].c[1] è corretto
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. --Gerald Weinberg |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Mar 2008
Messaggi: 24
|
grazie milla!!l'ho capito adesso:-)
|
|
|
|
|
|
#4 |
|
Junior Member
Iscritto dal: Mar 2008
Messaggi: 24
|
mille nn milla:-)
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:03.



















