Оказывается, что char c[] = {"a"}; полностью действует как в С++ 03, так и С++ 11.
Я бы не ожидал, что это будет, потому что это массив char not of char const*, и я ожидал бы, что инициатор скобки потребует совместимый тип для каждого из своих "элементов". Он имеет один элемент и a char const* не a char.
Итак, что делает эту инициализацию действительной? И есть ли обоснование для этого?
Аналогично, char c[] = {"aa"}; компилируется, а печать c приводит к выводу "aa".
Я бы ожидал, что char c[]{"a"} будет действительным в С++ 11, конечно, но это не то же самое! Аналогично, char c[] = {'a'} очевидно в обоих, как и char c[] = "a".