我在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
1条答案
按热度按时间j7dteeu81#
arr[1]
未初始化请尝试,int arr[] = {0, 0};