Differenza Tra Struttura E Unione In C

Sommario:

Differenza Tra Struttura E Unione In C
Differenza Tra Struttura E Unione In C

Video: Differenza Tra Struttura E Unione In C

Video: Differenza Tra Struttura E Unione In C
Video: Tutorial C+ - Struct e Typedef - Lezione 29 2024, Potrebbe
Anonim

Differenza chiave - Struttura vs Unione in C

Un array è un dato strutturato supportato dal linguaggio C. Un array può essere utilizzato per memorizzare elementi di dati dello stesso tipo. Se c'è un'istruzione come int mark [10]; quindi i segni sono un array che può memorizzare dieci segni e tutti sono numeri interi. A volte è necessario memorizzare elementi di dati di diverso tipo nella stessa posizione di memoria. Ad esempio, un dipendente può avere un ID dipendente, un nome, un reparto, un'età, ecc. Sono di diversi tipi di dati. Pertanto, è necessario disporre di un metodo per memorizzare vari elementi di dati come una singola unità. Le strutture e le unioni in C vengono utilizzate per memorizzare elementi di dati di tipi diversi nella stessa posizione di memoria. Una struttura e un'unione sono simili ma si differenziano principalmente a causa dell'allocazione della memoria. La memoria richiesta per memorizzare una variabile di struttura è la somma della dimensione della memoria di tutti i membri. La memoria richiesta per memorizzare una variabile di unione è la memoria richiesta per l'elemento più grande dell'unione. Questa è la differenza chiave tra struttura e unione in C. Questo articolo discute la differenza tra struttura e unione in C.

CONTENUTI

1. Panoramica e differenza chiave

2. Cos'è la struttura in C

3. Cos'è l'unione in C

4. Somiglianze tra struttura e unione in C

5. Confronto affiancato - Struttura vs Unione in C in forma tabulare

6. Riepilogo

Cos'è la struttura in C?

Una struttura è un tipo di dati definito dall'utente in C. Aiuta a combinare elementi di dati di diversi tipi. Una struttura può rappresentare i record. Uno studente può avere student_id, student_name ecc. Invece di memorizzare ogni variabile separatamente, tutti questi diversi elementi di dati possono essere compatti in una singola unità utilizzando una struttura. Viene definito utilizzando la parola chiave "struct". In una struttura è possibile accedere a tutti i suoi membri in qualsiasi momento. Di seguito viene creato un tipo di dati derivato struct Student.

struct Student {

intstudent_id;

char student_name [20];

};

Per la struttura di cui sopra, le variabili possono essere dichiarate come segue.

struct Studente student1, student2, student3;

Esistono due metodi per accedere ai membri della struttura. Ovvero usando l'operatore membro (.) E l'operatore puntatore struttura (->). È possibile accedere ai membri utilizzando nome_variabile_struttura. nome del membro. Se il programmatore vuole accedere al nome dello studente 2, può scrivere l'istruzione come printf (student2.student_namename);

Fare riferimento al programma seguente con una struttura.

Differenza tra struttura e unione in C
Differenza tra struttura e unione in C

Figura 01: programma C con strutture

Secondo il programma di cui sopra, Student è una struttura. Contiene student_id e student_name. Due variabili di tipo struttura sono dichiarate nel programma principale. Si chiamano student1 e student2. L'id dello studente1 viene assegnato con valore 1 utilizzando l'operatore membro come student1.student_id = 1. Il nome "Ann" è una stringa. Pertanto, viene copiato nel membro student_name utilizzando la funzione di copia della stringa strcpy. L'ID e il nome vengono assegnati a student2 in modo simile. Infine, questi valori vengono stampati utilizzando l'operatore membro.

La quantità di memoria richiesta per memorizzare una variabile di struttura è la somma delle dimensioni della memoria di tutti i membri. Student_id contiene 4 byte e student_name contiene 20 byte (un byte ciascuno per un carattere). I 24 byte totali sono la somma della dimensione della memoria richiesta dalla struttura.

Cos'è l'unione in C?

Un'unione è un tipo di dati definito dall'utente in C. Aiuta a memorizzare diversi tipi di dati nella stessa posizione di memoria. Un libro può avere proprietà come nome_book, prezzo ecc. Invece di creare variabili per ciascuno di essi, è possibile utilizzare un'unione per compattare tutti i diversi tipi di dati in un'unità utilizzando un'unione. Viene definito utilizzando la parola chiave 'union'. Di seguito viene creato un Book di unione dei dati derivati.

unionBook {

nome del carattere [20];

doppio prezzo;

};

Per l'unione di cui sopra, le variabili possono essere dichiarate come segue.

unione Libro libro1, libro2;

Esistono due metodi per accedere ai membri del sindacato. Ovvero usando l'operatore membro (.) E l'operatore puntatore struttura (->). È possibile accedere ai membri utilizzando union_variable_name. nome del membro. Se il programmatore vuole accedere al nome del book1, allora può scrivere l'istruzione come printf (book1.name);

Fare riferimento al programma seguente con un'unione.

Differenza tra struttura e unione in C Figure 02
Differenza tra struttura e unione in C Figure 02

Figura 02: programma C che utilizza union

Secondo il programma di cui sopra, il Libro è un'unione. Il book1 è una variabile di tipo union. Il nome e il prezzo sono valori assegnati. Nell'unione, è possibile accedere a un solo membro alla volta e tutti gli altri membri avranno valori di spazzatura. Il valore di id non viene stampato correttamente ma il valore del prezzo viene stampato correttamente.

Differenza chiave tra struttura e unione in C
Differenza chiave tra struttura e unione in C

Figura 03: programma C modificato con unione

Secondo il programma di cui sopra, Book è un'unione. Book1 e book2 sono variabili di tipo union. Innanzitutto, viene assegnato il valore per nome libro1 e viene stampato. Quindi il valore per book2 name viene assegnato e viene stampato. Tutti i membri vengono stampati correttamente perché viene utilizzato un membro alla volta. La memoria richiesta per memorizzare un'unione è la memoria richiesta per l'elemento più grande dell'unione. Nel programma precedente, la variabile del nome è di 20 byte. È più grande del prezzo. Quindi, l'allocazione di memoria per l'unione è di 20 byte.

Quali sono le somiglianze tra struttura e unione in C?

  • Sia la struttura che l'unione in C sono tipi di dati definiti dall'utente.
  • Sia Structure che Union in C possono essere utilizzati per memorizzare diversi tipi di dati nella stessa posizione di memoria.

Qual è la differenza tra struttura e unione in C?

Articolo diff. Al centro prima della tabella

Struttura vs Unione in C

La struttura è un tipo di dati definito dall'utente in linguaggio C che consente di combinare insieme dati di diversi tipi. Union è un tipo di dati definito dall'utente in linguaggio C che consente di combinare insieme dati di diversi tipi.
Accessibilità
In una struttura è possibile accedere a tutti i suoi membri in qualsiasi momento. In un'unione, è possibile accedere a uno solo dei suoi membri alla volta e tutti gli altri membri conterranno valori di spazzatura.
Allocazione della memoria
La memoria richiesta per memorizzare una variabile di struttura è la somma delle dimensioni della memoria di tutti i membri. La memoria richiesta per memorizzare una variabile di unione è la memoria richiesta per l'elemento più grande dell'unione.
Parola chiave
La parola chiave utilizzata per definire una struttura è "struct". La parola chiave utilizzata per definire un'unione è "unione".

Riepilogo - Struttura vs Unione in C

Un array viene utilizzato per memorizzare gli elementi di dati dello stesso tipo. A volte è necessario memorizzare elementi di dati di diverso tipo nella stessa posizione di memoria. Il linguaggio di programmazione C fornisce la struttura e l'unione per eseguire questa operazione. Entrambi sono tipi di dati definiti dall'utente. La memoria richiesta per memorizzare una variabile di struttura è la somma delle dimensioni della memoria di tutti i membri. La memoria richiesta per memorizzare una variabile di unione è la memoria richiesta per l'elemento più grande dell'unione. Questa è la differenza tra struttura e unione in C.

Raccomandato: