此代码在不同机器上的不同输出

问题描述 投票:0回答:1
#include <stdio.h>
void main() 
{
    int i, j;

    for (i = 0; i < 3; i++) {
        if (i == 1) goto label;
        printf("%d",i);
    }
    for (j = 3; j < 5; j++) {
        printf("%d", j);
        label: ;
    }
}


此 c 代码在我的系统上输出 0,而在其他系统上输出 01234 我可以做什么,以便它也在我的系统上显示 01234。我正在使用 ms vs code。

c mingw
1个回答
0
投票

您需要在

j
之前初始化变量
goto
,否则您将调用未定义的行为。

void main(void) 
{
    int i, j = 3;

    for (i = 0; i < 3; i++) {
        if (i == 1) goto label;
        printf("%d",i);
    }
    for (j = 3; j < 5; j++) {
        printf("%d", j);
        label: ;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.