Quina diferència hi ha entre "a" i "a" i entre "3" i "3" en el llenguatge de programació C?


Resposta 1:

Qualsevol cosa que estigui entre "" es considera com una cadena (matriu de caràcters), mentre que qualsevol cosa de "" es considera com un sol personatge.

Sempre que utilitzeu "", s'insereix un caràcter nul ("\ 0") al final de la cadena per marcar el final de la cadena. També podeu accedir a cada personatge d'una cadena igual que a un element d'una matriu a través del seu índex.

Si es tracta d'un sol personatge, heu d'utilitzar cometes simples, si es tracta de cadenes, utilitzeu "".

Una cosa així com char a = "a"; llançarà un error, perquè les cadenes es guarden com a punters mentre que un personatge es desa al seu codi ascii equivalent (com a nombre enter)


Resposta 2:

Les cometes dobles defineixen cadenes amb caràcter nul final. Les cometes simples no ho fan.

"a" defineix 0x61, 0x00
'a' defineix 0x61

"3" defineix 0x33, 0x00
"3" defineix 0x33

Així doncs, podem definir

char * p = "3";

Però no ho podem fer

char * p = '3';

Es produirà un error com "inicialitzar char * tipus variable amb rvalue char".

Però podem fer això

char c = '3';