前から疑問におもっていたことをココに記そうとおもい

int a = 10;

上の文は、変数aに整数10が代入するものであるが、「10」はすなわち
intで宣言されたaに代入されたからint型のデータではなく、最初から
int型のデータなのであるのか?

どうように「5.68」などの小数点数は最初からdouble型と決まっているのか?
ならば、なぜ「独習C」はfloat型を多用するのか?

どなたかよろしければご解説ください。

(独習Cって最初から読んでいくとすぐ眠たくなるのはどうしてですか?)
(本が分厚いからかしら? 「すべて入力して確かめるべし」を忠実に守ろうと)
(するからかしら?)