Hi, Robertoo is right when he says you can
but in multiple scripts you can have a variable with that name in every script object.
but this statement should be made a little more clear
You can have only one variable with a certain name per script
The global variable is declared outside the Main(){} structure and must be unique, that is true form what he said above. This can been seen anywhere in the script and doesn't looses its value when the processor leaves the script. It then carries the value back to the script when the processor returns.
If you declare a variable inside a Main(){int i=0;} that variable can only be used in the Main() and must be unique. It dies when the processor leaves Main() and is renewed when the processor returns to the Main() and the value is lost. If you declare a variable in a function you can use the same name as in a Main() as it unique to that function and dies when the processor leaves the function. It will not influence the value in the Main().
There are other methods where you can declare a variable in a loop for example for(int i = 0; i < 10; i++){'i' can only be seen inside these braces }. This is also unique to that and can't been seen outside the loop. Other methods also operate this way. If you declare a variable inside braces it is also unique to them, example if(a < b ){ int i += b; move( b );} 'i' can't be seen outside the braces.
Now back to the original thought you can declare variables with the same name in a Functions or a Methods or Braces {} because they die when completed.
But it is always good practice to have different names for easy recondition of events. like 'int saveCount' for a counter in a file handling function or mouseX for a mouse handling routine etc.
Hope this is of some help.
n_iron