Оба GCC и Clang не жалуются, если я присваиваю строковый литерал char*, даже если вы используете множество педантичных опций (-Wall -W -pedantic -std=c99):
char *foo = "bar";
пока они (конечно) жалуются, если я назначаю const char* a char*.
Означает ли это, что строковые литералы считаются типом char*? Разве они не должны быть const char*? Это не определено поведение, если они модифицируются!
И (некоррелированный вопрос) о параметрах командной строки (например: argv): считается ли это массивом строковых литералов?