0

これはばかげた質問かもしれません、そして私はそれをグーグルするのに苦労したことにショックを受けました、しかしここに行きます:

この状況で何が起こるか:

int foo(void){
     char x = 1;

     if (x == 1}
         goto apple;
     }
     else{
         goto banana;
     }

apple:
    printf("apple");

banana:
    printf("banana");

    return 0;
}

出力x==1

 apple
 banana

それともapple、ラベルの最後で停止するだけですか?コードは引き続き行ごとに実行され、他のラベルを入力しますか?

4

1 に答える 1

5

x == 1の場合、出力は次のようになります。

 apple
 banana

はい、そうなります。ラベル(gotoまたはswitchラベル)は失敗します。

于 2012-11-15T20:11:41.280 に答える