変数宣言:変数型 変数名 初期化子;

初期化子:=その時点で「見える」同一型の変数、定数で構成される式
あとは略

文法上正しくエラーとはしてはならないのが>>818のコード
結果も2出力でなければおかしい。
そもそも
main(){
int i=i+1;
...
がコンパイルが通ることがおかしい。