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