janken 変数を初期化しないとどうなるか??

"型と変数名だけを宣言しておいて、後で値を代入する前にその値を参照すると予期しない値がっ入っている事があります。"
と本に書いてあり,例え?のソースがあったのでここに書きます。

#include <stdio.h>

main () {
    int a;    //これは前回の変数の様にint型の変数aを使いますよという意味...?
    
    printf("a = %d\n", a);    //2ではない数字ってこれの事かな...?
    a = 2;
    printf("a = %d\n", a);
    return 0;
}

このプログラムを実行すると「a = 2;」と値を代入する前に変数aの値に何か入っているか見ると2ではない数字がはいる。。。らしいです。