As far as I remember, definition reserves space in the memory for an object, how much, depending on its type, and declaration only telling the compiler an object exists.
Only what exists in the compiler's "mind" may be allotted a chunk of memory; so, a definition must be preceded by a declaration. int i=1; Declaration, because I tell the compiler, from now on, exists an object named "i"; definition, because the compiler will give the object some addressable room in the memory [the room for an integer]; initialization, because that room now stocks 1. Right? Geraldo
