Да! Но остерегайтесь этой потенциальной ошибки:
char * myFunc() {
return "Constant string?";
}
Да, вы можете преобразовать строковый литерал в неконстантный char *
! Это позволит вам позже разрушить мир, пытаясь изменить содержимое этого char *
. Эта «особенность» существует по старым причинам - строковые литералы старше, чем const, и первоначально были определены как char *
в C.
g ++, к счастью, выдает это неприятное предупреждение, даже в режиме по умолчанию. Я не знаю, так ли охотно выдает VC ++ предупреждение.