Newsgroup: it.comp.lang.c
Titolo: DOMANDA[STRUTTURE]

A che cavolo servono le strutture? Le sto studiando, ma nonostante tutto non
riesco a capirne la funzione. Scusatemi, ma ho proprio bisogno di voi.
E poi, è normale avere un'incredibile confusione in testa (almeno
all'inizio)per quel che riguarda array, puntatori e stringhe?
Grazie tante
Ciao

immagina una persona... essa e' caratterizzata da nome, cognome ed eta' (a
parte le altre variabili)... quindi avere una struttura riferita al suo
essere permette di avere una variabile con un solo nome, che poi contiene
altre...
quindi se crei una struttura persona che contiene altre variabili (nome,
cognome ed eta' appunto)
struct persona {
    char nome[32]; /* il nome; max 31 caratteri stampabili */
    char cognome[32]; /* il cognome; max 31 caratteri stampabili */
    unsigned int eta; /* eta; intero senza segno */
};
creo dunque un nuovo tipo di variabile (persona) che ne contiene altre.
sarebbe dunque piu' facile andare a ricavare o immagazzinare i dati
riguardanti altre variabili di tipo persona.
persona mario;
persona mimmo;
ed ora posso finalmente inizializzare i dati, come per esempio l'eta' delle
due persone.
mario.eta = 32;
mimmo.eta = 23;
certo si poteva ottenere risultati anche creando una stringa del tipo:
"mario rossi ha 32 anni e mimmo bianchi ha 23 anni", ma a quel punto avresti
dovuto estrarre dalla stringa i dati necessari... e cmq e' una complicazione
della cosa...
spero di averti chiarito il dubbio

all'inizio)per quel che riguarda array, puntatori e stringhe?
Certo, ma preoccupati di capire bene i puntatori, tutto il resto non
sono altro che variazioni sul tema dei puntatori (gli array non sono
altro che puntatori, lo stesso vale per le stringhe,... tutto il C è
un puntatore!).
Ciao e buon studio.

 ha scritto nel messaggio
news:9gnpn2$ee6$1...@nreadB.inwind.it...

Ad esempio se tu dovessi definire un punto con il C, come lo
rappersenteresti in memoria? senza srtutture saresti costretto a lavorare in
modo molto scomodo , ad esmpio
int main( )
{
    int x, y, color;
    x = 5;
    y = 5;
    stampa_punto (x, y, color);
    return 0;
}
se poi ti servono 2 punti il codice diventa sempre più complesso e di
difficile manutenzoine :
int main( )
{
    int x, y, color;
    int x2, y2, color2;
    x = 5;
    y = 5;
    x2 = 4;
    y2 = 3;
    color2 = 6;
    stampa_punto (x, y, color);
    stampa_punot(x2, y2, color2);
    return 0;
}
e vedi come già così devi tenerti a mente il nome di molte variabili sparse
un pò d'appertutto. Se il programma si complica la cosa diventa
insostenibile.
Invece definendo un tipo punto così
struct point{
    int x, y, color;
};
il codice risulta senz'altro più semplice, mantenibile, e compatto :
int main( )
{
    struct point p1, p2;
    p1 = init_point(1, 3, 5);
    p2 = init_point(2, 4, 6);
    stampa_punto (p1);
    stampa_punot(p2);
    return 0;
}
...ma ci sono anche altri vantaggi nell'usare le struct...come ad esempio
poter far ritornare più di un valore ad una funzione.
Se posso consolarti la confusione su array, puntatori e "stringhe" c'è
l'hanno in molti.

 ha scritto nel messaggio
news:9gnpj8$b6h$1...@fe2.cs.interbusiness.it...


};
ma quanti anni può avere una persona?! ;-)
Anto
--
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it

 ma quanti anni può avere una persona?! ;-)
Sei OT .
Scherzo ;-) (ci stava bene la battuta!)
Mai mettere limiti alla medicina.
Alex

cosa significa OT? io sono nuovo di questo newsgroup e sinceramente sono
anche nuovo al C... :PP ho perso il mio tempo da giovane ad assemblare i pc
e a giocare come amministratore di reti ma ora voglio sviluppare programmi
in C/C++ per IP/TCP :P e magari crittografia.

 ha scritto nel
messaggio news:9gskpb$aqo3k$1...@ID-94246.news.dfncis.de...
