我正在为我的大学课程用 C 语言编写应用程序。在我的应用程序的一部分中,我迭代地增加一个整数。使用 printf 语句,我可以看出 int1 应该增加到 20,但随后运行失败。我想知道为什么会这样?
int main() {
int i,int1=0, int2=0;
for (i = 0; i<10; i++) {
int1 = (int2 + 2);
int2 = int1;
}
}
该程序必须与 ANSI C 内联,我相信它声明使用:
int1 = (int2 + 2);
是未定义的行为,因为编译器无法保证首先处理哪个“相同”变量。(但是,如果我错了,请纠正我!)这就是为什么我采取了更长的方式,但是使用任何一种方式应用程序都失败了。
这失败的原因是什么?