关于while话语的用法

关于while语句的用法
实现了一个strcpy函数,其中用到while语句,代码如下:
引用
#include "stdio.h"

char *strcpyOther(char *strDest, const char *strSrc)
{
if ( strDest == NULL || strSrc == NULL)
return NULL ;

if ( strDest == strSrc)
return strDest ;

char *tempptr = strDest ;

while( (*strDest++ = *strSrc++) != '\0') ;

return tempptr ;
}

int main()
{
    char strDst[10] = {0};
    char* strSrc = "0123456789";
    
    strcpyOther(strDst, strSrc);
    
    printf("strDst is %s\n", strDst);
}

,发现一个问题,要是
while( (*strDest++ = *strSrc++) != '\0') ;
后面没有逗号的话,循环体执行一次就自动退出了,加上逗号才能如你所愿,那就是说,循环体不能为空么,为空的话,while后面括号的内容就执行一次就出来了?

多谢!
strcpy

------解决方案--------------------
;就代表空循环体
没有;的话 return就成了循环体,当然循环一次就推出了。


------解决方案--------------------
引用:
实现了一个strcpy函数,其中用到while语句,代码如下:
引用
#include "stdio.h"

char *strcpyOther(char *strDest, const char *strSrc)
{
if ( strDest == NULL 
------解决方案--------------------
 strSrc == NULL)
return NULL ;

if ( strDest == strSrc)
r……
看看基础语法吧,循环体可以为空,不加分号的话直接接一对大括号也可以(这就表示循环体为空),总之不加分号的话后边那个return就成了循环体中的执行语句了,执行了一次return函数都直接结束了还别说什么循环了