while(i = 0)

来源:百度知道 编辑:UC知道 时间:2024/05/28 06:56:36
请问while (i = 0)
i=0这个表达式的值是0还是1?
为什么呀?
谢谢回复!
这是一道题目,二级考试的,问会有少次循环。
还有一种就是
while (*p++ = *str++)这个循环退出是什么条件呢?

1.
while (i = 0)
i=0这个表达式的值是0.
因为这是一个赋值表达式,赋值表达式的值等于最后赋给变量的那个值!
2.
while (*p++ = *str++)这个循环退出的条件是*str为'\0'时,即str指向字符串结束标志时!注意,这种写法是要把str指向的字符串复制到p指向的字符串,而且把结束标志也复制过去了。另外注意,跳出循环之后,指针p和str都又自增了一次,都指向了结束标志的下一个内存单元!

这是一个错误的用法。
=是赋值。
while()中间的应该是一个判断,你可以这样使用
while(i==1),i=1的时候循环,不为1时,跳出循环。

while(i=0)括号里是一个,赋值表达式,,赋值后i为0;括号中为0,即为假,所以不循环.

i=0只是个赋值表达式,没有0,1之分,用在while这里是语法错误,应该用while(i==1)

whlie(i=0) 始终中间是0,为假
意思是不执行,
while (*p++ = *str++) 退出条件是*str++指向'\0'