初期化されていないローカルを言うことができる場合int
、それは未定義の値を取得しますが、ローカルchar
変数がある場合、それも未定義の値を持つべきではありませんか?もちろん、0はその未定義の値である可能性がありますが、私が見つけたすべての関連情報は約int
であり、char変数がintにキャストされると、以下のプログラムは0を出力するだけなので、charは何か違うのだろうかと思っていました。フラグなしでGCC4.7を使用しています。
int main()
{
char test1;
int test2;
std::cout<<test2; //garbage
std::cout<<std::endl;
std::cout<<(int)test1; //0
return 0;
}