les variables externes sont-elles initialisées à leur valeur par défaut?

Je sais que si un tableau de caractères est un local global ou statique, ses éléments sont initialisés à \ 0, mais que se passe-t-il si le tableau de caractères est une variable externe?

Si la variable a été déclarée en tant qu’extern mais qu’elle est non globale, elle reçoit également le même traitement d’initialisation. Par exemple

namespace A { extern int x; int x;} 

Cette variable non globale sera initialisée à zéro. Toutes les variables de scope d’espace de noms reçoivent cette manipulation.

Une variable externe est juste une déclaration. La variable est initialisée dans le module qui l’a définie. Étant donné que dans ce module, la variable est globale, elle est initialisée à zéro.

extern n’est qu’une déclaration .
Si la variable sera initialisée dépend de la définition .

En outre, la valeur de la variable dépendra du type d’initialisation. La norme C ++ définit 3 types d’initialisation:

  • Zéro-initialiser
  • Initialisation par défaut
  • Valeur-Initialiser

C ++ 03 Standard 8.5 / 5 définit chacun avec justesse.

Bonne lecture:

Quelle est la différence entre une définition et une déclaration?

Le mot clé extern déclare uniquement que la variable existe, il ne définit pas sa valeur. en raison de la scope globale, il a initialisé à 0