>>144
char *a = "foo"; って書くと、>>150>>151>>154のように、aに書き換え不可領域の"foo"のアドレスが代入されます
char a[] = "foo"; って書くと、書き換え不可領域の"foo"のサイズ(4バイト)を計算、書き換え可能領域にメモリを確保、"foo"をコピー、そのアドレスがaに代入されます