Koja je razlika između "a" i "a" i između "3" i "3" u programskom jeziku C?


Odgovor 1:

Sve što je između "" smatra se nizom (niz znakova), dok se sve u '' smatra jednim znakom.

Kad god upotrebljavate "", null znak ("\ 0") se dodaje na kraj niza kako bi se označio kraj niza. Svakom znaku u nizu također možete pristupiti kao i element u nizu kroz njegov indeks.

Ako imate posla s jednim znakom, trebate koristiti pojedinačne navodnike, a ako se bavite nizovima, koristite "".

Nešto poput char a = „a“; će dovesti do pogreške jer su nizovi pohranjeni kao pokazatelji dok je znak pohranjen u njegovom ekvivalentnom ascii kodu (kao cijeli broj)


Odgovor 2:

Dupli citati definiraju nizove sa završnim znakom nule. Pojedini citati to ne čine.

"a" definira 0x61, 0x00
'a' definira 0x61

"3" definira 0x33, 0x00
'3' definira 0x33

Dakle, možemo definirati

char * p = "3";

Ali ne možemo

char * p = '3';

Dati će pogrešku poput "inicijaliziranja tipa varijable char * s rvalue char".

Ali mi to možemo

char c = '3';