1.1.5.1 Conversion on Initialization and assignment
Assigning a value to a type with a greater range usually poses no
problem.
If shorter range or different type, maybe there are some problems.
assigned to a bool, zero will convert to false, and nonzero will convert
to true.
When conversion, maybe loss precision(double -> float ) loss fragment(float
-> i) or Undefine (int i = 666, then char c = i;) Detail example can be seen
in my evernote bookmark.