#include <stdio.h> void main () { int i; int result = 0; int value = 1; for (i = 0; i < 100; i++) { printf("%d ", i); result = value * --i; } printf("Result %d\n", result); }
首先看一下程序怎么运行的 就是流程控制for (i = 0; i < 100; i++) { printf("%d ", i); result = value * --i; } 首先是 i = 0 i < 100成立 i 输出 然后 执行result = value * --i ; 即 i = i - 1 ; result = value * i ; 此时i = -1 , 然后执行 i ++; 即 i = 0 ; 然后继续执行上述过程 所以进入死循环 所以printf("Result %d\n", result); 根本没办法输出 以为for循环直接死循环 只是输出 i 的值 。