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