Since class A is a non-template class and A::foo() is a non-template function. There will be only one copy of static int i inside the program.
Any instance of A object will affect the same i and lifetime of i will remain through out the program. To add an example:
A o1, o2, o3;
o1.foo(); // i = 1
o2.foo(); // i = 2
o3.foo(); // i = 3
o1.foo(); // i = 4