>>24
char s[] = "abc";
は、
char s[] = { 'a', 'b', 'c', '\0' };
の特別な表現(便宜上設けた表現)である。‥‥�@
ということだけ、理屈ぬきに丸暗記しておけばいいと思います。

どんな型の配列でも、その宣言と初期化は
int a[3] = { 1, 2, 3 };
double b[3] = { 3.1415926, 2.71828, 0.57721566 };
と書くのが基本です。‥‥�A

>int pip[]="ABCD";
�@でも�Aでもないので不可です。