Les guillemets simples contre des guillemets en C ou C++
Quand dois-je utiliser des apostrophes et des guillemets dans la programmation C ou C++?
Vous devez vous connecter pour publier un commentaire.
Quand dois-je utiliser des apostrophes et des guillemets dans la programmation C ou C++?
Vous devez vous connecter pour publier un commentaire.
En C et en C++ guillemets à identifier un caractère unique, tandis que les guillemets de créer une chaîne littérale.
'a'
est un seul caractère littéral, tandis que"a"
est un littéral de chaîne contenant un'a'
et un terminateur null (c'est un 2 char array).En C++, le type d'un caractère littéral est
char
, mais note qu'en C, le type d'un caractère littéral estint
, c'est-àsizeof 'a'
est de 4 dans une architecture où l'ints sont 32 bits (et CHAR_BIT est 8), tandis quesizeof(char)
est de 1 partout.Certains compilateurs également de mettre en œuvre une extension, qui permet de caractères multi-constantes. Le standard C99 dit:
Cela pourrait ressembler à ceci, par exemple:
L'résultant constante (dans GCC, qui met en œuvre ce) a la valeur que vous obtenez en prenant chaque personnage et de les déplacer, de sorte que " je " termine dans les bits les plus significatifs de la valeur de 32 bits. De toute évidence, vous ne devriez pas compter sur cette si vous écrivez du code indépendant de plate-forme.
Guillemets simples sont des personnages (
char
), les guillemets doubles sont null cordes (char *
).const char *
.'x'
est un entier représentant la valeur numérique de lalettre x dans la machine de jeu de caractères
"x"
est un tableau de caractères, deux caractères,composé de
‘x’
suivie par‘\0’
Guillemets simples sont pour un seul caractère. Les guillemets sont pour une chaîne de caractères (tableau de caractères). Vous pouvez utiliser des guillemets simples pour construire une chaîne de caractères, un caractère à la fois, si vous le souhaitez.
J'ai été farfouillé des trucs comme: int cc = "cc"; Il se trouve que c'est essentiellement un octet sage copie d'un entier. D'où la façon de voir les choses, c'est que " cc " qui est à la base 2 c sont copiés à la baisse de 2 octets de l'entier cc. Si vous êtes à la recherche pour un de trivia, puis
99 25443
c'est parce que 25443 = 99 + 256*99
Donc " cc " est un multi-caractère constant et pas une chaîne de caractères.
Acclamations
single quote
est pourcharacter
;double quote
est pourstring
.Les guillemets sont des littéraux de chaîne, par exemple:
Guillemets simples sont de simples chaînes de caractères, par exemple:
MODIFIER Comme David dit dans une autre réponse, le type d'un caractère littéral est
int
.char str[] = {'H','e','l','l','o'};
, etstr
serait pas ont un terminateur null.str
n'est pas une chaîne de caractères (au moins, pas un C-chaîne de style, ce qui correspond à un BNT).char[]
(qui, souvent, les gens chose comme "strings") est null."hello" /*seamlessly connected to*/ "world"
. Et cela peut faire sens pour commenté multi-ligne de messages.En C guillemets simples, par exemple 'a' indiquer les constantes de caractère alors que le "un" est un tableau de caractères, toujours terminé par le caractère 0
Guillemets simples sont dénotant un char, double désigner une chaîne de caractères.
En Java, c'est aussi le même.
Apostrophe est utilisée pour le caractère, tandis que le double citation utilisée pour la chaîne.
Par exemple..
Sortie
un
Bonjour Tout Le Monde
Si vous avez utilisé ces dans le vice versa cas et utilisé une seule citation pour la chaîne et des guillemets doubles pour un personnage. Ici, ce sera le résultat;
de sortie :
pour la première ligne.Vous aurez la valeur d'ordures ou d'inattendu.ou vous avez peut-être sortie comme ça..
�
tandis que pour la deuxième instruction. Vous ne verrez rien. Une chose de plus. Si vous avez plus de déclaration à l'issue de cette. Ils pourront également vous donner aucun résultat.
Remarque : le langage PHP, vous donnent la flexibilité de l'utilisation simple et double quote facilement.
Utiliser des guillemets simples avec un seul char que:
ici
'a'
est un caractère constant et est égal à laASCII
valeur de char.Utiliser des guillemets doubles avec des chaînes comme:
ici
"foo"
est un littéral de chaîne.Bien pour l'utilisation
"a"
mais ce n'est pas correct d'utiliser 'foo'