Domanda

Quando devo utilizzare le virgolette singole e doppie virgolette nella programmazione C o C ++?

È stato utile?

Soluzione

In C e in singoli apici C ++ identificare un singolo carattere, mentre le doppie virgolette creano un letterale stringa. 'a' è un singolo un letterale carattere, mentre "a" è una costante stringa contenente un 'a' e un terminatore null (che è una matrice 2 char).

In C ++ il tipo di un letterale carattere è char, ma nota che in C, del tipo di un letterale carattere è int, che è sizeof 'a' è 4 in un'architettura in cui interi sono 32bit (e CHAR_BIT è 8), mentre sizeof(char) è 1 in tutto il mondo.

Altri suggerimenti

Alcuni compilatori anche implementare un interno, che permette costanti multi-carattere. Lo standard C99 dice:

  

6.4.4.4p10: "Il valore di una costante carattere intero contenente più   di un carattere (per esempio, 'ab'), oppure   contenente un carattere o escape   sequenza che non mappa a un   singolo byte caratteri esecuzione, è   implementazione definita ".

Questa potrebbe essere la seguente, per esempio:

const uint32_t png_ihdr = 'IHDR';

La costante risultante (in GCC, che implementa questo) ha il valore che si ottiene prendendo ogni carattere e spostando l'alto, in modo che le estremità 'I' alto dei bit più significativi del valore di 32 bit. Ovviamente, non si dovrebbe fare affidamento su questa piattaforma di codice indipendente se si sta scrivendo.

virgolette singole sono caratteri (char), le doppie virgolette sono stringhe null-terminate (char *).

char c = 'x';
char *s = "Hello World";
  • 'x' è un numero intero che rappresenta il valore numerico della lettera x in set di caratteri della macchina
  • "x" è un array di caratteri, due caratteri, costituito da ‘x’ seguita da ‘\0’

Gli apici singoli sono per un singolo carattere. le doppie virgolette sono per una stringa (array di caratteri). È possibile utilizzare le virgolette singole per costruire una stringa di un carattere alla volta, se vi piace.

char myChar     = 'A';
char myString[] = "Hello Mum";
char myOtherString[] = { 'H','e','l','l','o','\0' };

Sono stato frugato cose come: int cc = 'cc'; Accade che è sostanzialmente una copia byte-saggio in un numero intero. Quindi il modo di cerca è che 'cc' che è fondamentalmente 2 c del vengono copiati inferiore 2 byte del cc intero. Se siete alla ricerca di una curiosità, poi

printf("%d %d", 'c', 'cc'); would give:

99 25443

che è perché 25443 = 99 + 256 * 99

'cc' è una costante più caratteri e non di una stringa.

Saluti

  1. single quote è per character;
  2. double quote è per string.

Le doppie virgolette sono per letterali stringa, per esempio:.

char str[] = "Hello world";

Gli apici singoli sono per letterali di caratteri singoli, per esempio:.

char c = 'x';

Modifica Come David affermato in un'altra risposta, il tipo di un letterale carattere è int.

C apici come 'un' indicano costanti carattere che "a" è un array di caratteri, sempre terminato con il carattere 0

citazione unico venga utilizzato per il personaggio, mentre virgolette utilizzato per la stringa.

Ad esempio ..

 printf("%c \n",'a');
 printf("%s","Hello World");

Output

una Ciao Mondo

Se avete usato questi in viceversa caso e usato apostrofo per archi e doppi apici per il personaggio. Ecco, questo sarà risultato;

  printf("%c \n","a");
  printf("%s",'Hello World');

uscita:

per il primo line.You avrà valore spazzatura o unexpected.or si può essere avere output come questo ..

mentre per la seconda istruzione. Si vedrà nulla. Una cosa di più. Se si dispone di più istruzione dopo questo. Essi potranno anche dare alcun risultato.

Nota: il linguaggio PHP vi danno la flessibilità di utilizzare preventivo singolo e doppio con facilità.

virgolette singole sono denota un char, doppia denotano una stringa.

In Java, è anche lo stesso.

L'uso preventivo singolo con singolo carattere come:

char ch = 'a';

qui 'a' è una costante char ed è pari al valore ASCII di char a.

Usa virgolette con le stringhe come:

char str[] = "foo";

qui "foo" è un letterale stringa.

Il suo bene usare "a" ma non è bene usare 'foo'

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top