There is a single definition within the for loop. The variable gets created, used, then destroyed at the closing curly brace and recreated in the next loop iteration. There is a single variable defined.
This is somehow similar to a variable defined in a function. The function can be called many times, but the variable is one. In fact with functions, the function can be called recursively and there will be more than one variable alive, but for each execution of the function there is a single variable defined.
EDIT: Note, as @xtofl correctly points out, that the lifetime of i
is the entire for loop, while the lifetime of a
is the block in the curly braces: a single iteration of the for loop.