Я пытаюсь понять объявления массива, константы и их результирующие типы переменных.C: объявить постоянный указатель на массив постоянных символов
Следующая разрешено (мой компилятор):
char s01[] = "abc" ; // typeof(s01) = char*
const char s02[] = "abc" ; // typeof(s02) = const char* (== char const*)
char const s03[] = "abc" ; // typeof(s03) = char const* (== const char*)
В качестве альтернативы, мы можем объявить размер массива вручную:
char s04[4] = "abc" ; // typeof(s04) = char*
const char s05[4] = "abc" ; // typeof(s05) = const char* (== char const*)
char const s06[4] = "abc" ; // typeof(s06) = char const* (== const char*)
Как получить результирующую переменную типа const char* const
? Не допускаются (мой компилятор) следующее:
const char s07 const[] = "abc" ;
char const s08 const[] = "abc" ;
const char s09[] const = "abc" ;
char const s10[] const = "abc" ;
const char s11 const[4] = "abc" ;
char const s12 const[4] = "abc" ;
const char s13[4] const = "abc" ;
char const s14[4] const = "abc" ;
Благодаря
Я не полностью уверен, что C поддерживает const ptr * const, что делает C++. – Puppy
@DeadMG: Он делает. –
Ниже приведен очень полезный инструмент: http://cdecl.ridiculousfish.com/?q=declare+bar+as+constant+pointer+to+array+of+constant+char; http://cdecl.ridiculousfish.com/?q=declare+bar+as+constant+pointer+to+constant+char – celavek