问题:设m和n都是int类型,那么以下for循环语句,( )
# include <stdio.h>
int main()
{
int m,n;
for(m=0,n=-1;n=0;m++,n++) //for(变量赋初值;循环判断条件;变量计算) 0为false,非零为true
{
n++;
printf("%d",n);
}
return 0;
}
循环体一次也不执行;
实验:当n=0时,编译通过,不显示任何数字;当n=1时,编译通过,运行结果无限显示222....;当n=-1时,编译通过,运行结果无限显示0000
分析:判断条件n=0,无论何时,n都被赋值为0,而赋值表达式的返回值即被赋值本身,即0,从而被认为是false,因此,for语句的循环体从来不会被执行。
原文:https://www.cnblogs.com/g6z3z/p/11291474.html