C语言中数组的使用模拟strcpy

#include
#include
char * my_strcpy(char* dest,const char* sou)
{
    assert(dest && sou);
    char* ret = dest;
    while (*dest++=*sou++)
    {
        ;
    }
    return ret;
}
int main()
{
    char arr1[] = "Hello World!";
    char arr2[] = "***************";
 
    printf("%s", my_strcpy(arr2, arr1));
 
    return 0;
}

这个代码来自https://blog.csdn.net/m0_62179366/article/details/123098864?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167218684216800182195650%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167218684216800182195650&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-4-123098864-null-null.142^v68^pc_new_rank,201^v4^add_ask,213^v2^t3_control2&utm_term=strcpy%E5%87%BD%E6%95%B0%E5%AE%9E%E7%8E%B0&spm=1018.2226.3001.4187,
请问怎么理解倒数第三行的char arr2[] =后边的那一堆*呢,它的个数又怎么想呢

请问怎么理解倒数第三行的char arr2[] =后边的那一堆*呢,它的个数又怎么想呢

这堆星号的唯一作用就是确定arr2数组的大小,星号本身没有作用。它的个数只需要不比arr1数组长度少就可以了

这不就跟arr1一样是个字符串,随便给它敲了一堆星号作为测试用的,你也可以改成1234567890