Kusakabe 氏は少々ぶっきらぼうだけど
間違ってないですね

C の auto 変数では宣言をループの外に移しても高速に
なることは(処理系の実装しだいだけど)まずない。
int a = 0; は初期化込みだから、宣言と全く同じではない。

ループの外に移すことで高速になるのは C++ で何らかの
処理を行うコンストラクタ付きのクラス変数を宣言したとき
でしょうか。でも、ここは C スレなので脱線しますが。