Qual è la differenza tra dire qualcosa come root-data e root.data?

0

Come dice il titolo, qual è la differenza tra - > e . Pensavo fossero la stessa cosa?

    
posta johnson 29.09.2016 - 00:15
fonte

1 risposta

6

Questi sono operatori diversi, anche se correlati.

In C, . è la selezione del campo e -> combina il dereferenziamento del puntatore e la selezione del campo. Quindi a->b equivale a (*a).b o più correttamente (*(a)).b .

Molte lingue non hanno sia . che -> . In C # e Java, ad esempio, che non hanno -> , l'operatore . esegue sia il dereference che la selezione del campo come in -> in C. Tuttavia, in C # e Java, . fa anche la selezione da uno spazio dei nomi, che non comporta il dereferenziamento (più simile all'operatore :: di C ++).

Nota: C # ha un costrutto unsafe che consente puntatori non sicuri / non elaborati e inoltre ha effettivamente l'operatore -> per lavorare con essi. Tuttavia, non incontrerai -> a meno che non lavori in unsafe code.

    
risposta data 29.09.2016 - 00:25
fonte

Leggi altre domande sui tag