Volevo sapere che differenza c'è tra
char *c;
e
char* c;
Volevo sapere che differenza c'è tra
char *c;
e
char* c;
Se c'è qualche differenza mi cade addosso come un macigno.
Sono la stessa identica cosa.
Lo pensavo anche io ma a vederlo sempre credevo funzionasse in modo diverso
Credo che quando il sorgente venga compilato il parser riconosca la struttura [stringa]*[stringa] skippando gli spazi.
E' importante la posizione, non quanti spazi abbia prima o dopo.
Sintatticamente sono la stessa cosa; se è da preferire una o l'altra è un altro discorso...dalla grammatica del C si vede che le dichiarazioni sono costituite da un nome di tipo + un declarator:
Declaration: Type Declarator
e una delle possibili forme del Declarator è
Declarator: * ID
quindi l'operatore * (STAR) fa parte del Declarator e non del tipo, ovvero è associato all'identificatore dell'oggetto dichiarato; non a caso, se c'è una dichiarazione multipla:
char * a, b, c;
equivale a:
char *a;
char b;
char c;
cioè lo STAR è associato solo al primo identificatore che precede, e non è un "modificatore" del tipo char.
Sun Certified Java Programmer
EUCIP Core Level Certified
European Certification of Informatics Professionals