When you declare a variable, the compiler gets a "box" and labels it with the name of your variable.
The kind of box taken, depends on the type of your variable. The "box" will be bigger if the type is float, than in case of an int.
Let us say you have as declaration: int myInt = 42;
So the compiler takes a "box" for an int and labels it with myInt. Now the problem is(because this "box" is taken out of free memory, that the box already has a value in it. So, initialisation is very important. Hope this little story helps a bit.