On 3 September 2017 at 11:43, Andrew Makhorin wrote: > Why x used to initialize y identifies not the same object as x used in > printf though x is the same identifier within the same block scope? Because that's how scope and visibility works in the C programming language. A name is only in scope after it has been declared. Get a good book on C programming.