端子中的C输出错误

irlmq6kh  于 2022-12-03  发布在  其他
关注(0)|答案(1)|浏览(123)

我在C语言中试验数组时遇到了一个奇怪的事件,数组的值发生了变化,尽管我没有操作数组中元素的数据。
下面是我的代码:

#include <stdio.h>
#include <conio.h>

int main () {
    int arr[] = {0};

    scanf("%i", &arr[0]);
    scanf("%i", &arr[1]);

    for (int i = 0; i < 2; i++) {
        printf("value of i %i\n", i);
        printf("%i\n", arr[i]);
    }

    getch();
}

并且输出为:

2 //this is an input
3 //this is an input
value of i 0
2
value of i 1
1

我在Turbo C中有相同的代码,但在Turbo C中,该数组中元素的值是正确的,Turbo中的输出是:

2 //this is an input
3 //this is an input
value of i 0
2
value of i 1
3

我试着调试并查看代码中值的更改何时发生,因此我尝试:

#include <stdio.h>
#include <conio.h>

int main () {
    int arr[] = {0};

    scanf("%i", &arr[0]);
    scanf("%i", &arr[1]);

    for (int i = 0; i < 2; i++) {
        printf("value of i %i\n", i);
        printf("%i\n", arr[i]);
    }

    printf("%i\n", arr[0]);
    printf("%i\n", arr[1]);

    getch();
}

现在的输出非常奇怪:

2 //this is an input
3 //this is an input
value of i 0
2
value of i 1
1
2
2
j7dteeu8

j7dteeu81#

arr[1]未初始化请尝试,int arr[] = {0, 0};

相关问题