>>704
特殊な扱いと言うか、"abc"は文字列リテラルへのポインタを表すから。
厳密には違うけど近い表現でいうと、
char s[] = {'a','b','c'};
char *p = s;
というようなイメージ。

>int *a = {1,2,3};
これは、ポインタを配列のように初期化しようとしているからエラーになる。
char *p = {'a','b','c'}; がエラーになるのと同じ。