Taille du littéral de chaîne : comprendre l'empreinte mémoire des constantes de chaîne
En C, les littéraux de chaîne font partie intégrante du code, représentant des séquences fixes de personnages. L'opérateur sizeof joue un rôle crucial dans la compréhension de l'allocation de mémoire et de la disposition de ces littéraux de chaîne.
Question 1 : Pourquoi sizeof calcule-t-il la longueur d'un littéral de chaîne ?
Lorsqu'il est appliqué à une chaîne littérale, telle que "f", l'opérateur sizeof mesure le nombre de caractères stockés dans le littéral, y compris le caractère nul de fin (' '). Dans le cas de "f", il calcule l'espace requis pour stocker deux caractères, car il inclut à la fois le "f" et le terminateur nul.
Question 2 : le littéral de chaîne a-t-il un sens différent Type quand donné à sizeof ?
Les littéraux de chaîne ont un type distinct : un tableau de caractères avec une taille connue, où la taille inclut le terminateur nul. Ce type diffère de char* (pointeur vers un caractère) et char[] (tableau de caractères). Lorsqu'il est transmis à sizeof, le type de tableau du littéral de chaîne est conservé, ce qui conduit à un résultat qui reflète la taille du tableau plutôt que la taille d'un pointeur.
Pourquoi sizeof renvoie-t-il des valeurs différentes pour les littéraux de chaîne , tableaux et pointeurs ?
Rappelez-vous :
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!