C语言中关于字符数组的问题?

#include<stdio.h>

int main(void)
{
    char arr[100] = "123456";
    arr[100] = "ubdyu" ;//(不能直接赋值)

    return 0;
}

为什么字符数组不能够等号赋值字符串,而初始化可以?
初始化和赋值有啥区别吗?

初始化是编译器开辟静态存储空间,然后把数组指向这里。所以可以,后面的不行,否则前面分配的空间白分配了。或者说内存泄漏了。
要赋值,可以写
strcpy(arr, "uvdyu");

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^