while(1)是什么意思,while(*s++=*t++)是什么意思?
网友回答
和while(true)是一个意思。
就是循环测试一直为真,
一般在应用中加入跳出测试条件:
while(1)
{
...
if(什么)
break;
;;;
}这样的。
网友回答
说起来复杂,直接改写一个do-while循环就好理解了:do{*s=*t++;} while(*s++);
如果硬要解释原程序的话,那表示的是指针t所指向数组的元素赋值给s所指向数组,并且t指针和s指针向后移动一位。具体来说:
先将*t的值赋给等号左边,然后t指向地址往后面移动一位。
因为++自增运算表示的一些特殊性,s++表示的是s自增之前的地址,故*s++表示的还是原来的地址上的值(也就是原来的*s),这时候就会被赋值为*t(在t指针还没移动前的值)。
while循环判断*s的值是否是0,不是0就进入循环,并且s指向位置后移。如果是0,出循环,s指向位置依然后移一位。
注意:不管这个while循环进不进入,s和t指向地址都会往后移动一位。