Parce qu'un littéral de chaîne représente une Chaîne de caractères qui peut être constitué de zéro ou plusieurs caractères, mais un (valide) caractère littéral représente exactement un caractère.
Un char peut être définie comme un type de données qui permet de stocker les 0 ou 1 caractère ...
Oui. En théorie, il aurait pu être définis de cette façon. Mais croyez-moi, si vous pensez à toutes les questions (par exemple comment vous pouvez représenter un char vide, comment faire une demande de traiter avec elle, etc) vous permettra de conclure que la il y a quelques avantages, et des inconvénients significatifs.
De toute façon, ce faisant simplement de sorte qu'il n'y a syntaxique, la cohérence entre la Chaîne et la char littéraux serait totalement fou. Vous ne cassez une langue performance et/ou de la sémantique, de sorte que la syntaxe a l'air sympa.
L'un des commentaires sur le a accepté de répondre à propose d' ''
devrait signifier la même chose que '\0'
. Mais le contre-argument c'est qu' '\0'
ne signifie pas l'absence de caractère. Cela signifie que l'un caractère dont la valeur est égale à zéro. Donc, si ''
réellement les moyens d'un caractère qu'il est trompeur. Et puisqu'il y a déjà un moyen de définir ce ... '\0'
... une deuxième façon de dénotant il est redondant.
Si certaines pièces de la nouvelle syntaxe de la langue est à la fois trompeur et redondant, il est difficile de justifier de l'ajouter.
Dans respose à SoloBold commentaire, alors qu'il serait possible de définir un type de caractère pour ce faire, elle aurait besoin de plus d'espace. Au moins 1 bit, et plus susceptibles de 16 bits pour éviter maladroit mémoire des problèmes d'alignement. Un 32-bit char
type ne serait pas acceptable ... même si elle ne permet de résoudre d'autres problèmes.