Maison >développement back-end >C++ >Quel est le vrai type d'une chaîne littérale en C ?

Quel est le vrai type d'une chaîne littérale en C ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-27 21:24:30307parcourir

 What is the True Type of a String Literal in C  ?

Détermination du type d'un littéral de chaîne

De nombreux programmeurs ont du mal à comprendre le type d'un littéral de chaîne. Est-ce un const char * (pointeur vers un caractère constant) ou un const char (caractère constant) ?

La réponse réside dans la représentation des chaînes littérales en C . Contrairement à C, où les littéraux de chaîne sont stockés sous forme de tableaux de caractères avec un terminateur nul (' ') ajouté à la fin, en C , les littéraux de chaîne sont fondamentalement const char[N]. Ici, N désigne la longueur de la chaîne (y compris le terminateur nul).

En substance, const char[N] et char const[N] sont équivalents. Cela implique que vous pouvez déterminer de manière fiable la longueur d'une chaîne littérale en utilisant sizeof("hello") - 1, qui calcule avec précision le nombre de caractères dans la chaîne (y compris tous les caractères nuls incorporés). Si les chaînes littérales étaient des pointeurs, cette approche échouerait car elle renverrait toujours la taille d'un pointeur dans votre système moins un.

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