for循环体是空语句,也就是单独由一个分号构成的空语句空语句就是什么也不做,但必须去执行这条语句,空循环8次后,循环结束,就执行printf语句,就只输出一个*;其实while也是一样的问题int i=8while(i--);加分号和不加分号有不同的意思,空语句再看看。
这个二重循环的循环体,是一个空语句(请注意k++右括号后面有一个分号)。所以输出语句不是循环体的成员,是循环结束后才执行的,所以只输出一个*号。
仔细看内层循环,循环后有一个分号,后面的语句只执行了一次