while(*a++=*b++) while(*a++=*b++) 这不是复制两个字符串的吗为什么 需要一个左值?应该怎么写?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 16:26:55

while(*a++=*b++)
while(*a++=*b++) 这不是复制两个字符串的吗
为什么 需要一个左值?应该怎么写?

这个应该是这样吧
while(*(++a)=*(++b));

先赋值,在自加,最后连\0的结束符也赋值进去
这个就是利用了结束符\0就是0的原理
当吧结束符赋值进去后,那么就是判断*a的值,如果是0了,就退出循环
要是先自加,在赋值,那么第一个字符时赋值不进去的