|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Paris
Messaggi: 912
|
Che significa il simbolo -> in C?
Come da oggetto, non sono riuscito a trovarlo. Sto studiando degli algoritmi in cui c'è
var1->var2 e non capisco cosa significhi... |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2003
Città: Rimini
Messaggi: 422
|
Di solito quando si studiano algoritmi, l'implementazione, e quindi il linguaggio è indipendente. Si usa uno pseudo linguaggio.
Nel mio libro la freccia indica l'assegnazione (Es C : var1=var2) Su che libro stai studiando? |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19149
|
-> lo usi quando hai a che fare con i puntatori
struct tuotipo { int numero; struct *tuotipo puntatore; } miavar = malloc(sizeof(tuotipo)); miavar->numero = 10; miavar->puntatore = NULL; questo perché fai riferimento alla memoria dinamica. in caso contrario useresti il . per specificare i vari campi del tuo tipo di dato |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Quote:
no, questo e' perche' miavar e' un puntatore a una struttura tuotipo, indipendentemente che sia allocata dinamicamente o meno. la notazione e' equivalente a (*miavar).numero in breve l'operatore . (punto) accede al campo di una struttura, l'operatore -> (freccia) al campo di un puntatore a una struttura |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Paris
Messaggi: 912
|
Ma allora è equivalente al punto o no? Cioé, serve per affettare i campi di tipo puntatore di una struttura? Oppure per affettare un puntatore su una struttura? |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19149
|
Quote:
è che sai com'è, i puntatori li uso solo per roba allocata dinamicamente quindi mi è venuta naturale questa imprecisione. |
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Paris
Messaggi: 912
|
Comincio a capire...
Serve per non complicarsi troppo la vita con l'affettazione dei campi di strutture ricorsive, tipo nodi di un grafo, giusto? Ad esempio: struct _nodo { int valore, struct *_nodo nodofiglio;} typedef _nodo * Nodo; Nodo mionodo; mionodo -> valore=1; equivale a (*mionodo).valore=1; In effetti nel mio algoritmo c'è qualcosa tipo: (...)malloc(sizeof(struct _nodo)); La cosa comunque è ancora + complicata perché nella mia struttura c'è un campostruct _nomestrutt **qualcosa; e sto doppio puntatore non ho capito a cosa diaminazzo serve... Comunque grazie a tutti. PS Se avete una referenza bibliografica di un libro su C in cui si dettagliano queste cose (in qualunque lingua europea) ve ne sarei grato. |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Quote:
ho un ottimo manuale in lituano, interessa? |
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
- per l'allocazione dinamica di strutture bidimensionali (ma dopo si usa così qualcosa[x][y]) - per modificare un puntatore anche nel codice chiamante Codice:
void f(int **p, int *pb)
{
*p = pb; /* assegno al puntatore puntato da p il puntatore b */
}
int *x;
int a = 4;
int b = 5;
x = &a;
f(&x, &b);
/* ora x punta a b */
|
|
|
|
|
|
|
#10 | |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16214
|
Quote:
Comunque, su carta: - B. W. Kernighan, D. M. Ritchie, "Linguaggio C --- Seconda edizione", Jackson Libri (la casa editrice ha chiuso: sbrigarsi a trovarne una copia!) - Deitel&Deitel, "C --- Corso completo di programmazione", Apogeo
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Paris
Messaggi: 912
|
Grazie ma il KR non è proprio quello che fa per me....
Le basi del C, fino a puntatori e allocazione dinamica, ce le ho. Cerco piuttosto un libro di strutture dati, con esempi di implementazioni in C, per esempio che dia codici sull'implementazione di un grafo, un albero, un automa a stati finiti, etc. |
|
|
|
|
|
#12 | ||
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16214
|
Quote:
Scherzi a parte: per me è stato un'illuminazione. Quote:
Sedgewick, "Algoritmi in C", Addison Wesley Cercalo sul sito di Pearson Education Italia e vedi se fa al caso tuo. Puoi anche cercare sul sito dell'Association of C and C++ Users e leggere il loro elenco di libri: c'è anche l'indicazione se ACCU lo raccomanda o no.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
||
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Paris
Messaggi: 912
|
Grazie. Ho preo ieri il Sedgewick in biblioteca, me lo sono già cominciato a leggere.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:57.



















