一道c语言的题,麻烦详细点解释以下

int k=0;while(k=1)k++; while循环执行的次序是?

先判断while()括号里面的内容,如果条件成立,则执行while(){ }后面大括号里面的循环体,反之,条件不成立,跳到大括号后面,执行后面的语句。
楼主你给的代码等价于
int k = 0;
while((k = 1) != 0)
{
k++;
}
分析:在while(k=1)处相当于while((k = 1) != 0) ,由于k=1,所以条件成立,所以执行k++(因为循环体内只有一句,所以大括号可以省略)之后k=2,再来判断k是否为非零值,显然满足条件,继续执行循环体,由此可见,无论如何k都不为0,所以成了死循环!
希望回答对楼主你有帮助!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-27
(1)首先k=1是个赋值表达式,赋值表达式是有值的,这个值等于赋值号左边变量的值,即k的值。
由(1),设X=(k=1),那么X为赋值表达式(k=1)的值即k的值,那么X始终为1。
所以while(k=1)即等价于于判断while(X),由于X为1,所以这个循环条件相当于while(1)。
综上,是个死循环,循环执行次数为无限次。
第2个回答  2012-12-27
int k = 0 宣告 初始k
在while回圈里 把1 assign给 k 然后 回圈 开始
进入回圈后 k++;
就是 k = k+1
第一次 跑完后 k 的值为2
再进去回圈 之后 k 为3
是死循环 一直跑下去。。
第3个回答  2012-12-27
将1赋值给k,然后k++,再次循环
是个无限循环
相似回答