Строковые литералы const?

И GCC, и Clang не жалуются, если я назначу строковый литерал char * , даже при использовании множества педантичных опций ( -Wall -W -pedantic -std = c99 ):

char *foo = "bar";

, хотя они (конечно) жалуются, если я назначу const char * на char * .

] Означает ли это, что строковые литералы относятся к типу char * ? Не следует Разве они const char * ? Это не определенное поведение, если они будут изменены!

И (некоррелированный вопрос) как насчет параметров командной строки (например: argv ): считается ли это массивом строковых литералов?

22
задан marcog 20 December 2010 в 19:41
поделиться