Ciao,
è una inizializzazione, e non è nemmeno l'unica possibile. Guarda questo:

codice:
#include <iostream>


using namespace std;


int main()
{
    int a = int(3);
    int * b = new int(2);
    int c{4};
    cout<<"a vale "<<a<<endl;
    cout<<"b vale "<<*b<<endl;
    cout<<"c vale "<<c<<endl;
    return 0;
}

Detto questo... a me non piacciono!
E' troppo banale scrivere
codice:
int a = 5;

? Dobbiamo per forza complicarci la vita?