Definición vs Declaración vs Inicialización en C/ C++

Definición vs Declaración vs Inicialización en C/ C++

En este artículo, hemos cubierto las diferencias entre 3 términos básicos Definición, Declaración e Inicialización en C y C++ junto con fragmentos de código.

Tabla de contenidos:

  1. Declaración
  2. Definición
  3. Inicialización
  4. Conclusión / Tabla de diferencias

Para entender la diferencia entre los dos, primero debemos entender cada término de forma independiente. Entonces, aquí vamos.

1. Declaración

La declaración de una variable es generalmente una introducción a una nueva memoria asignada a algo que podemos llamar con algún nombre.

Propiedades de declaración -
1.La creación de la memoria se produce en el momento de la declaración misma.
2. Las variables pueden tener valores basura.
3.Las variables no se pueden utilizar antes de la declaración.

Synatx-

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

Código-

#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;
}

Salida-

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

2. Definición

En la declaración, el usuario define la variable previamente declarada.

Sintaxis-

//declaration
int x;
float y;

// definition
x = 1;
y = 78;

Código-

#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;
}

Salida-

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

3. Inicialización

La inicialización no es más que asignar el valor en el momento de la declaración.

sintaxis-

int x = 0;

Código-

#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;
}

Salida-

Value of x: 1
Value of x2: 1.25

Conclusión / Tabla de Diferencias

De la explicación anterior podemos concluir lo siguiente:

  1. La declaración es simplemente nombrar la variable.
  2. Definición no significa declaración '+' Inicialización, ya que la definición podría ser sin inicialización.
  3. La inicialización es asignar valor a la variable declarada. (En el momento de la declaración)
Declaración Definición Inicialización
1. La declaración es simplemente nombrar la variable. La definición es declaración sin inicialización. la inicialización es una declaración con definición al mismo tiempo.
2. Las variables pueden tener valores basura Las variables pueden o no tener valores basura Las variables no tienen valores basura
3 La declaración se puede hacer cualquier número de veces. Definición realizada solo una vez Inicialización hecha solo una vez
4. La memoria no se asignará durante la declaración La memoria se asignará durante la definición La memoria se asignará durante la inicialización
5. La declaración proporciona atributos básicos de una variable/función. la definición proporciona detalles de esa variable/función. La inicialización proporciona detalles de esa variable/función y valor.

Con este artículo en OpenGenus, debe tener la idea completa de Definición vs Declaración vs Inicialización en C/ C++.