値は関数の処理が終わるまでは保持できる。再度呼び出された場合、前回の値が入っているとは限らない。(同一スレッドから連続して呼び出した場合、ほぼ確実にもとの値が入っている。気が付かずにバグとなることがある。) 高速にアクセスできる たしか容量に上限があった気がする。(static ローカル変数は除く)
グローバル変数の接頭語には gValue のように g をつけるのがマナーだと思います。 グローバル変数は共同でプログラムを作るときにはバグの温床となるので使用はできるだけ控えましょう。C++のクラスを用いれば、グローバル変数はいらないはずです。まあちょっとしたプログラムならいいですけどね。