Assuming it n2has some kind of built-in type, the cast to type int &re-interprets the lvalue n1(any type that it had) as the lvalue of the type int.
int n2 = (int &) n1, n1 lvalue int, , . n1 - const int, , . n1 lvalue - , cast , n1 int ( punning). n1 l, .
, int n2 = (int&) n1 int & ( ), , .. n1 l - ( int).
float n1 = 5.0;
int n2 = (int &) n1;
int n2 = *(int *) &n1;
int n2 = *reinterpret_cast<int *>(&n1);
, .
BTW, , ++- . reinterpret_cast C-, , , .
, n1 int, . .
P.S. , n2 int &, -. , , n2, .