

for循环里的循环判断条件部分的变量是可以和初始化值得变量不同的吗?此处里的p是没有办法确定范围的,但是在范围的地方写上N>0,再去执行就成功了,是什么原理呢?


for循环里的循环判断条件部分的变量是可以和初始化值得变量不同的吗?此处里的p是没有办法确定范围的,但是在范围的地方写上N>0,再去执行就成功了,是什么原理呢?
可以。
for循环里用;分成了三段,不要求必须用同一个变量。
而且中间那段不叫“范围”,应该叫“循环条件”,是for循环能够继续执行下去的条件,并不是初始化变量的范围。
再考考你,下面代码能正常执行吗
int p=0;
for(;N>0;p++)
{
a[p]=N%10;
N/=10;
sum+=a[p];
}
这样呢:
for (int p=0; ;p++)
{
a[p]=N%10;
N/=10;
sum+=a[p];
if (N>0)break;
}