C: déclarer un pointeur constant vers un tableau de caractères constante

J'essaie de comprendre la matrice de déclarations, constness, et leurs types de variables.

Suivantes est autorisée (par mon compilateur):

      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*)

Alternativement, nous pouvons déclarer la taille de la matrice manuellement:

      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*)

Comment puis-je obtenir un résultat variable de type const char* const? Les éléments suivants ne sont pas autorisés (par mon compilateur):

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" ;

Grâce

Je ne suis pas entièrement sûr que C prend en charge la const ptr* const chose que le C++ n'.
Il n'.
La suite est un outil très utile: cdecl.ridiculousfish.com/... ; cdecl.ridiculousfish.com/...
j'ai demandé à cette question: const char a[const]

OriginalL'auteur kevinarpe | 2010-08-19