Qual è la differenza tra la notazione & Arrow notazione in C?

May 17

I programmatori usano il linguaggio di programmazione C per il software di sistemi e di codice di basso livello. A causa di questo, una delle capacità C è la creazione di strutture dati complesse. Queste strutture contengono dati raccolti insieme, spesso rappresentano un pezzo più grande di dati con molti valori rilevanti. L'accesso a questi valori significa loro riferimento con la struttura utilizzando la speciale "punto" e notazioni "freccia" (a seconda della situazione).

C Strutture

Creazione di un tipo di dati complessi in C comporta la creazione di quello che è conosciuto come una struttura, utilizzando la parola chiave "struct". Queste strutture di solito contengono due o più variabili di dati, e rappresentano un tipo di dati coerenti (piuttosto che agisce come una raccolta di dati casuali). Ad esempio, la seguente struttura C rappresenta un nodo in una struttura di dati più grande, e contiene un pezzo di dati, e un puntatore ad un'altra struttura dello stesso tipo:

struct nodo {

dati int = 1;

struct * nodo successivo;

};

puntatori

All'interno della struttura "nodo" esiste un puntatore ad un'altra struttura Node. Puntatori a strutture sono molto comuni quando si passa variabili struttura a funzioni. Essi sono anche un fattore al momento di decidere che la notazione un programmatore dovrebbe usare per fare riferimento a dati strutturali. Puntatori creano un riferimento di memoria a un tipo di dati, piuttosto che creare una variabile poco profonda per il tipo di dati. Così nel seguente esempio, la prima dichiarazione dichiara una struttura variabile in un ambito locale, che significa che deve essere copiato e spostato. La seconda dichiarazione dichiara un puntatore a una struttura in memoria che permette cose come l'allocazione dinamica della memoria:

struct nodo x;

struct * Nodo y;

dot Notation

La notazione richiesta per accedere ai dati in strutture dipende dal contesto della struttura. Se il programmatore dichiara una variabile struttura come una variabile locale, poi lei sarà accedere ai dati tramite la notazione del punto. Dot notazione collega semplicemente una variabile di struttura e di un membro di dati struttura attraverso un simbolo punto ( "."). I seguenti esempi mostrano come il programmatore potrebbe recuperare i dati da una variabile di nodo attraverso la notazione punto:

struct nodo x;

int j = x.data; // J ora equivale a un

freccia Notation

L'altro contesto per recuperare i dati dalle strutture è quando il programmatore ha un puntatore a una struttura piuttosto che una variabile locale. Quando il programmatore crea un puntatore a una struttura, due cose devono accadere. In primo luogo, si deve dichiarare il puntatore struttura. In secondo luogo, si deve allocare memoria in modo che la memoria riferimenti puntatore con la dimensione corretta. Poi, si può usare la notazione freccia ( "->") di accesso ai dati:

struct * Nodo y;

y = malloc (sizeof (struct node)); // Alloca memoria y nella dimensione di una struct Node

int j = y> dati; // Intero j ora equivale a un