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:
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