Apa perbedaan antara "a" dan 'a' dan antara "3" dan '3' dalam bahasa pemrograman C?


Jawaban 1:

Apa pun yang ada di antara "" dianggap sebagai string (array karakter), sedangkan apa pun di ‘’ dianggap sebagai karakter tunggal.

Setiap kali Anda menggunakan "", karakter nol (‘\ 0’) dimasukkan di akhir string untuk menandai akhir string. Anda juga dapat mengakses setiap karakter dalam string seperti elemen dalam array melalui indeksnya.

Jika Anda berurusan dengan karakter tunggal, Anda perlu menggunakan tanda kutip tunggal, jika Anda berurusan dengan string, gunakan "".

Sesuatu seperti char a = "a"; akan melempar kesalahan, karena string disimpan sebagai pointer sedangkan karakter disimpan dalam kode ascii yang setara (sebagai integer)


Jawaban 2:

Kutipan ganda mendefinisikan string dengan mengakhiri karakter nul. Kutipan tunggal tidak melakukan itu.

"a" mendefinisikan 0x61, 0x00
'a' mendefinisikan 0x61

"3" mendefinisikan 0x33, 0x00
'3' mendefinisikan 0x33

Jadi kita bisa mendefinisikan

char * p = "3";

Tapi kita tidak bisa melakukannya

char * p = '3';

Ini akan memberikan kesalahan seperti ‘menginisialisasi tipe variabel char * dengan rvalue char”.

Tetapi kita bisa melakukan ini

char c = '3';