Maison >développement back-end >C++ >Les littéraux de chaîne C ont-ils une allocation de mémoire statique et une durée de vie ?

Les littéraux de chaîne C ont-ils une allocation de mémoire statique et une durée de vie ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-21 02:45:09640parcourir

Do C   String Literals Have Static Memory Allocation and Lifetime?

Comprendre les littéraux de chaîne en C : allocation et durée de vie

Un littéral de chaîne en C est une séquence de caractères entourée de guillemets doubles ("" ). Cela soulève la question : une chaîne littérale est-elle allouée dans la mémoire statique et persiste tout au long de l'exécution du programme ?

Allocation et durée de stockage

La réponse est oui. Les littéraux de chaîne sont créés dans la mémoire statique, ce qui signifie qu'ils sont alloués lors de l'initialisation du programme et restent accessibles jusqu'à la fin du programme. Cette caractéristique découle de la durée de stockage des littéraux de chaîne.

Explication standard

Selon la norme C (2.13.4/1), un littéral de chaîne ordinaire a un type de "tableau de n const char" et durée de stockage statique. La durée de stockage statique, telle que définie dans 3.7.1/1 de la norme, impose que le stockage de ces objets dure pendant toute la durée de vie du programme.

Par conséquent, les littéraux de chaîne bénéficient d'une durée de stockage statique, ce qui garantit leur disponibilité tout au long du programme. Ils restent intacts même lors de la destruction d'objets statiques ou d'autres opérations de gestion de mémoire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn