while(1)是什么意思,while(*s++=*t++)是什么意思?

发布时间:2020-07-11 13:18:35

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指向地址都会往后移动一位。
以上问题属网友观点,不代表本站立场,仅供参考!