Вот; это приводит к неопределенному поведению (нарушение псевдонимов).

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

char *foo = "bar";

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

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

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

Ответы на вопрос(0)

Ваш ответ на вопрос