这串代码好奇怪啊,为什么a最后是10?

这串代码好奇怪啊,为什么a最后是10?
#include
int main() {
int i = 0;
int j = 0;
int a = 0;
for (; i < 10; i++) {
for (; j < 10; j++) {
a++;
}
}
printf("%d", a);
return 0;
}

因为内层循环只会执行一遍,第二遍执行时由于j值没有复位为0,因此一直是11,导致后续内层循环无效,a值不变,始终是第一次循环结束后的结果10
如果改成for(j=0;j<10;j++)才会不一样

因为第二层循环体 for(;j<10;j++)只执行了一次10次,后面的j一直等于10,并不会执行a++。

你这个代码没有问题