ما الفرق بين "a" و "a" وبين "3" و "3" في لغة البرمجة C؟


الاجابه 1:

أي شيء يقع بين "" يعتبر سلسلة (مجموعة من الأحرف) ، في حين أن أي شيء في "" يعتبر كحرف واحد.

كلما استخدمت "" ، يتم إدراج حرف فارغ (‘\ 0 ') في نهاية السلسلة للاحتفال بنهاية السلسلة. يمكنك أيضًا الوصول إلى كل حرف في سلسلة مثل عنصر في صفيف من خلال فهرسه.

إذا كنت تتعامل مع حرف واحد ، فأنت بحاجة إلى استخدام علامات الاقتباس المفردة ، وإذا كنت تتعامل مع السلاسل فستستخدم "".

شيء مثل char a = "a"؛ خطأ ، لأن السلاسل يتم تخزينها كمؤشرات بينما يتم تخزين الحرف في كود ascii المكافئ له (كرقم صحيح)


الاجابه 2:

تحدد علامات الاقتباس المزدوجة السلاسل مع إنهاء حرف nul. ونقلت واحدة لا تفعل ذلك.

يعرّف "a" 0x61 ، 0x00
"a" تعرف 0x61

يعرّف "3" 0x33 ، 0x00
يعرّف "3" 0x33

حتى نتمكن من تحديد

char * p = "3" ؛

لكن لا يمكننا القيام به

char * p = '3' ؛

سيعطي خطأ مثل "تهيئة char * type type with rvalue char".

ولكن يمكننا أن نفعل هذا

char c = '3'؛