Definizione vs dichiarazione vs inizializzazione in C/C++

Definizione vs dichiarazione vs inizializzazione in C/C++

In questo articolo, abbiamo trattato le differenze tra i 3 termini principali Definizione, Dichiarazione e Inizializzazione in C e C++ insieme ai frammenti di codice.

Sommario:

  1. Dichiarazione
  2. Definizione
  3. Inizializzazione
  4. Conclusione/Tabella delle differenze

Per capire la differenza tra i due, dovremmo prima capire ogni termine in modo indipendente. Quindi, eccoci qui.

1. Dichiarazione

La dichiarazione di una variabile è generalmente un'introduzione a una nuova memoria allocata a qualcosa che potremmo chiamare con un nome.

Proprietà della dichiarazione -
1. La creazione della memoria avviene al momento della dichiarazione stessa.
2.Le variabili possono avere valori spazzatura.
3.Le variabili non possono essere utilizzate prima della dichiarazione.

Synatx-

//declare a variable
int x
//declare a function but not defined
void func();

Codice-

#include<iostream>
using namespace std;

int main()
{
    int x; // variable declaration

    cout << "Value of x:" << x << endl; // garbage value
    cout << "Address of x: " << &var << endl; // x's assigned address
    cout << "Size of x: " << sizeof(x) <<" bytes";// allocated memory in bytes

    return 0;
}

Uscita-

Value of x:32766
Address of x: 0x7ffebb87a084
Size of x: 4 bytes

2. Definizione

Nella dichiarazione, l'utente definisce la variabile dichiarata in precedenza.

Sintassi-

//declaration
int x;
float y;

// definition
x = 1;
y = 78;

Codice-

#include<iostream>
using namespace std;

int main()
{
    int x; //variable declaration
    cout << "Value of x: " << x << endl; // garbage value
    
    x = 2;  // variable initialization/definition
    cout << "Value of x:" << x << endl;
    
    x = 4 + x;  //data overriding
    cout << "New x value: " << x << endl;
    
    return 0;
}

Uscita-

Value of x: 0
Value of x: 2
New x value: 6

3. Inizializzazione

L'inizializzazione non è altro che l'assegnazione del valore al momento della dichiarazione.

sintassi-

int x = 0;

Codice-

#include<iostream>
using namespace std;

int main()
{
    // declaration & initialization at same time
    int x = 1;
    float x2 = 1.25;

    cout << "Value of x: " << x << endl; 
    cout << "Value of x2: " << x2 << endl; 

    return 0;
}

Uscita-

Value of x: 1
Value of x2: 1.25

Conclusione/Tabella delle differenze

Dalla spiegazione di cui sopra possiamo concludere quanto segue-

  1. La dichiarazione sta solo nominando la variabile.
  2. Definizione non significa dichiarazione '+' L'inizializzazione come definizione potrebbe essere senza inizializzazione.
  3. L'inizializzazione sta assegnando valore alla variabile dichiarata. (Al momento della dichiarazione)
Dichiarazione Definizione Inizializzazione
1.La dichiarazione sta solo nominando la variabile. La definizione è una dichiarazione senza inizializzazione. l'inizializzazione è una dichiarazione con definizione allo stesso tempo.
2.Le variabili possono avere valori inutili Le variabili possono avere o meno valori spazzatura Le variabili non hanno valori spazzatura
3 La dichiarazione può essere eseguita un numero qualsiasi di volte. Definizione eseguita solo una volta Inizializzazione eseguita solo una volta
4.La memoria non verrà allocata durante la dichiarazione La memoria verrà allocata durante la definizione La memoria verrà allocata durante l'inizializzazione
5.La dichiarazione fornisce gli attributi di base di una variabile/funzione. la definizione fornisce i dettagli di quella variabile/funzione. L'inizializzazione fornisce i dettagli di quella variabile/funzione e valore.

Con questo articolo su OpenGenus, devi avere un'idea completa di Definizione vs Dichiarazione vs Inizializzazione in C/C++.