ciao per accedere ai campi di un tipo di dato strutturato che differenza c'è tra "." e "->"??
es:
typedef struct{
int a;
char b;
} Tipo;
Tipo t;
che cambia tra t.a e t->a?
grazie mille
ciao per accedere ai campi di un tipo di dato strutturato che differenza c'è tra "." e "->"??
es:
typedef struct{
int a;
char b;
} Tipo;
Tipo t;
che cambia tra t.a e t->a?
grazie mille
-> viene usato se la tua variabile è un puntatore alla struct... si utilizza per evitare di dover imprare la proiorità degli operatori..
(*myvar).field
equivale a
myvar->field
ok grazie!Originariamente inviato da xnavigator
-> viene usato se la tua variabile è un puntatore alla struct... si utilizza per evitare di dover imprare la proiorità degli operatori..
(*myvar).field
equivale a
myvar->field
Ma cosa c'entra ...Originariamente inviato da xnavigator
si utilizza per evitare di dover imprare la proiorità degli operatori..![]()
No MP tecnici (non rispondo nemmeno!), usa il forum.
oOOriginariamente inviato da oregon
Ma cosa c'entra ...![]()
facendo *myvar.field non ottieni lo stesso risultato e devi per forza fare (*myvar).field
oO
Ma non è che l'operatore -> è nato perchè un programmatore pigro non voleva inserire le parentesi per l'operatore * ... ! Questa è una barzelletta ...![]()
No MP tecnici (non rispondo nemmeno!), usa il forum.
secondo te perchè è nato?Originariamente inviato da oregon
Ma non è che l'operatore -> è nato perchè un programmatore pigro non voleva inserire le parentesi per l'operatore * ... ! Questa è una barzeletta ...![]()
vabè comunque io sapevo che era questo il motivo.. poi se non è cosi chissene
in C l'operatore "->" ha il ruolo di scorciatoia sintattica (semanticamente non aggiunge nulla al linguaggio C):Originariamente inviato da oregon
Ma non è che l'operatore -> è nato perchè un programmatore pigro non voleva inserire le parentesi per l'operatore * ... ! Questa è una barzelletta ...![]()
Un po' come in algebra, in cui l'operazione differenza costituisce una scorciatoia sintattica per la somma tra un numero positivo ed uno negativo:codice:tipo->campo = (*tipo).campo;
Verrebbe da dire che anche la moltiplicazione può essere interpretata come una scoricatoia sintattica per esprimere somme multiple.codice:7-3 = (+7)+(-3);
Quindi viva la pigrizia!
Del resto per quale motivo in C/C++ si usa "=" come operatore d'assegnamento anziché il ":="?
;-)