C语言字符串赋值问题

为什么
char *a;
a="12345";
可以


char *a;
a={"12345"};
不可以

字符串数组赋值时,为什么只能用大括号,小括号,中括号为什么不行

a="12345"; 字符串的类型也是const char*,可以复制。中括号表示数组下标。