main()
{
char a1='=';
char a2='=';
printf("%d",a1+a2);
}
الرمز على النحو الوارد أعلاه ، فهو ببساطة يؤدي '=' + '=' وطباعة القيمة 122. (لماذا ؟؟) ..
main()
{
char a1='=';
char a2='=';
printf("%d",a1+a2);
}
الرمز على النحو الوارد أعلاه ، فهو ببساطة يؤدي '=' + '=' وطباعة القيمة 122. (لماذا ؟؟) ..
لأن ASCII قيمة '='
يكون 61
في C ، يتم تمثيل الأحرف داخليًا باستخدام ascii. الأحرف هي مجرد أنواع رقمية ، لذا فإن إضافتها تضيف فقط قيم ascii *. (جوجل ASCII
لمزيد من المعلومات حول هذا.)
في أسكي ، '='
يكون 61
، وبالتالي '=' + '='
بالضبط مثل 61 + 61
أو 122
، وهو ما تحصل عليه.
إذا كنت تأمل ذلك +
تتسلسل a1
و a2
، للأسف هذا ليس هو الحال منذ ذلك الحين char
s هي قيم رقمية في C. إذا كان هذا ما تريده ، فسأبحث في google C strings
(لكيفية تعامل C مع السلاسل) كنقطة بداية.
إذا كنت تتوقع أن تفعل شيئًا آخر ، يمكنني تعديل إجابتي لشرح ذلك أيضًا.
* تحرير: كما أشار Fei Xiang ، ASCII غير مضمون بمعيار C. ومع ذلك ، في معظم الأنظمة الحديثة ، يتم استخدام ASCII ، وتنطبق إجابة مماثلة على برنامجي بغض النظر عن الترميز المستخدم.