Would you expect an error? Perhaps you don't actually know C, if you're steeped in awesome things like Lua and Erlang, but this totally valid C. In fact, it outputs what you would expect, if you were familiar with Lua local scoping with blocks:
You can't redefine a var in the same scope like you can with Lua or say Go's := operator, but you can definitely redefine variables within a scope in lots of languages.