【C++】int i = i; の挙動について

質問

タイプミスから気づいたのですが、以下のような変数宣言がコンパイルエラーにならないようです。

C++

int i = i;

実際にiの中に入る値は直前までの挙動によるようです。

C++

int i = i;std::cout << i << "\n"; // 0

C++

int x = 1;int i = i;std::cout << i << "\n"; // 16

このような挙動になる理由はなぜなのでしょうか?
C++やC言語に詳しい方がいらっしゃったらぜひお教えいただけると幸いです。

補足情報(FW/ツールのバージョンなど)

C++17
g++.exe (x86_64-win32-seh-rev0, Built by MinGW-W64 project) 8.1.0

コメントを投稿

0 コメント