#include <stdio.h>
int main(void) {
int i= 1, j = 1;
for (; j; printf("%d %d",i, j))
j = i++ <= 5;
return 0;
}
输出-
2 13 14 15 16 17 0
谁能解释一下循环内发生了什么?这个问题是面试过程中被问到的。
最佳答案
代码相当于:
int main(void) {
int i=1,j=1;
while (j != 0) {
j = (i<=5);
i = i+1;
printf("%d %d",i,j);
}
return 0;
}
我认为它的意义和输出现在已经很明显了。请注意,printf
不会在第二个数字之后打印任何分隔符。这意味着输出中的两位数字“数字”是通过两次连续调用 printf
打印的。如果您使用 printf("%d %d; ",i,j);
而不是 printf("%d %d",i,j);
输出将是:
2 1; 3 1; 4 1; 5 1; 6 1; 7 0;
关于c - 这个 for 循环在 C 中做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49107918/