#include <stdio.h>
int main(void) {
int a = 1;
switch(a) {
int i = 2;
case 1: printf("%d",i);
break;
default: printf("Hello\n");
}
}
次のコードサンプルは36として出力しています。これはどのように可能ですか?私は、コンパイラがi
を評価せずに、コントロールをケース1に直接転送することを理解しています。しかし、なぜ私は36として出力を得ていますか?switch文内で変数を初期化する
PS:私はGCCを使用しています。
なぜこのタグはjavaの下にありますか? – Curious
これはどのように役立つでしょうか? @GAURANGVYAS – Jarvis
私は '0'を取得するので、(少なくともCでは)未定義の動作を引き起こしていると思われます。 –