ページ 11

bitシフトの戻り値?

Posted: 2021年7月03日(土) 12:27
by umeth
以下のコードで,a,b,cの値が何を指すのか教えていただけないでしょうか?

コード:

void main()
{
  int i = 3;
  int a, b, c, d = 1 << i;
  printf("%d\n", a);
  printf("%d\n", b);
  printf("%d\n", c);
  printf("%d\n", d);
}
標準出力での結果は以下のとおりです。

コード:

3
72529672
0
8
この8の意味は1を3左にシフトした結果というのはわかるのですが、それ以外の数字の意味がわかりません。いろんなサイトを調べてみたのですが、わからずじまいで質問させていただきます。どうか回答よろしくお願いします。

Re: bitシフトの戻り値?

Posted: 2021年7月03日(土) 12:33
by 参照魚
int型の変数 a,b,c,d を定義して、"dだけ"初期化した状態です。
dは初期値の8(1<<3) となりますが、a,b,cは未初期化状態です。
未初期化状態の変数の値には何が入っているかわかりません。

Re: bitシフトの戻り値?

Posted: 2021年7月03日(土) 13:21
by umeth
なるほど!ありがとうございます!わからず数時間溶かしていたので本当にたすかりました!