En programmation, les littéraux représentent des valeurs constantes qui ne peuvent pas être modifiées. Cependant, en C et C , les chaînes littérales constituent une exception à cette règle. Alors que tous les autres littéraux sont des valeurs r (temporaires), les littéraux de chaîne possèdent le trait particulier d'être des valeurs l.
Raison d'être des littéraux de chaîne en tant que valeurs L
Ce comportement unique découle de la nature intrinsèque des chaînes littérales. Contrairement aux littéraux de type de données de base (par exemple, entiers, nombres à virgule flottante), les littéraux de chaîne ressemblent à des objets. En C, les tableaux sont la construction la plus proche des objets, et les chaînes littérales sont fondamentalement des tableaux de caractères.
Signification des valeurs L
Les valeurs L indiquent des objets qui peuvent être affecté et résider dans un emplacement de mémoire identifiable. Dans le cas des tableaux, le fait d'être des valeurs l permet une manipulation directe des éléments individuels. À l'inverse, les valeurs R ne peuvent pas être attribuées directement et représentent des valeurs temporaires.
Considérations sur le modèle de mémoire
La distinction entre les valeurs L et les valeurs R est ancrée dans l'ordinateur. architecture. Les premiers ordinateurs utilisaient des régions de mémoire distinctes pour la modification (en écriture) et la récupération (en lecture seule). Les valeurs L représentaient des données modifiables, tandis que les valeurs r servaient de références immuables.
Considérations de conception alternatives
Les littéraux de chaîne auraient pu être conçus avec des types de pointeurs, ressemblant à des pointeurs constants pour enchaîner « contenu ». Toutefois, une telle approche aurait diminué leur utilité. Par exemple, l'opérateur sizeof leur aurait été inapplicable.
Évolution en C99
La norme C99 a introduit les littéraux composés, accordant le statut de valeur L aux autres littéraux. Ce changement souligne en outre que les valeurs L ne se limitent plus aux seuls littéraux de chaîne, mais deviennent la norme.
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!