简单的for循环突然使C中的程序崩溃
Simple for loop suddenly crashes program in C
我正在通过
使用 MSVC
cl file.c
使用这个非常简单的代码:
#include <stdio.h>
#include <stdlib.h>
int
main(void) {
int num = 50, pointNum = 60, max = 0;
puts("Hello");
for (int i = 0; i <= num; i++) {
printf("%d\n", pointNum % i);
}
return 0;
}
但是当我从命令行 运行 它时,它只是暂停然后崩溃,只打印“Hello”。我不知道哪里出了问题,因为它似乎没有错误。
当 i == 0
时,您执行的数学运算 60 % 0
会触发被零除。这会触发未定义的行为,这通常会使您的程序崩溃。
在循环的第一次迭代中,除数为 0。但除以 0 是不可能的。因此,它只会崩溃。而不是这个代码片段,我认为你应该使用
for (int i = 1; i <= num; i++) {
printf("%d\n", pointNum % i);
}
这不会提供任何错误。
我正在通过
使用 MSVCcl file.c
使用这个非常简单的代码:
#include <stdio.h>
#include <stdlib.h>
int
main(void) {
int num = 50, pointNum = 60, max = 0;
puts("Hello");
for (int i = 0; i <= num; i++) {
printf("%d\n", pointNum % i);
}
return 0;
}
但是当我从命令行 运行 它时,它只是暂停然后崩溃,只打印“Hello”。我不知道哪里出了问题,因为它似乎没有错误。
当 i == 0
时,您执行的数学运算 60 % 0
会触发被零除。这会触发未定义的行为,这通常会使您的程序崩溃。
在循环的第一次迭代中,除数为 0。但除以 0 是不可能的。因此,它只会崩溃。而不是这个代码片段,我认为你应该使用
for (int i = 1; i <= num; i++) {
printf("%d\n", pointNum % i);
}
这不会提供任何错误。