عندما أقوم بالطباعة ("٪ d" ، '=' + '=') ؛

-7
main()
{
char a1='=';
char a2='=';
printf("%d",a1+a2);
}

الرمز على النحو الوارد أعلاه ، فهو ببساطة يؤدي '=' + '=' وطباعة القيمة 122. (لماذا ؟؟) ..

2 الاجابة

1
افضل جواب

لأن ASCII قيمة '=' يكون 61

قيم ASCII

:مؤلف
0

في C ، يتم تمثيل الأحرف داخليًا باستخدام ascii. الأحرف هي مجرد أنواع رقمية ، لذا فإن إضافتها تضيف فقط قيم ascii *. (جوجل ASCII لمزيد من المعلومات حول هذا.)

في أسكي ، '=' يكون 61 ، وبالتالي '=' + '=' بالضبط مثل 61 + 61 أو 122 ، وهو ما تحصل عليه.

إذا كنت تأمل ذلك + تتسلسل a1 و a2 ، للأسف هذا ليس هو الحال منذ ذلك الحين char s هي قيم رقمية في C. إذا كان هذا ما تريده ، فسأبحث في google C strings (لكيفية تعامل C مع السلاسل) كنقطة بداية.

إذا كنت تتوقع أن تفعل شيئًا آخر ، يمكنني تعديل إجابتي لشرح ذلك أيضًا.

* تحرير: كما أشار Fei Xiang ، ASCII غير مضمون بمعيار C. ومع ذلك ، في معظم الأنظمة الحديثة ، يتم استخدام ASCII ، وتنطبق إجابة مماثلة على برنامجي بغض النظر عن الترميز المستخدم.

:مؤلف
فوق
قائمة طعام