C (لغة البرمجة): ما هو الفرق بين: ++ a و a = a + 1؟


الاجابه 1:

ليس هناك فرق. ++ a و a = = 1 و a = a + 1 عبارة عن تعبيرات متماثلة تمامًا ، حسب التعريف (بمعنى ، تحدد لغة المواصفات لهم بهذه الطريقة).

في الحالات الثلاث ، تكون نتيجة التعبير عبارة عن نسخة من القيمة التي سيكتبها في "a" (A ++ ، بالطبع ، مختلفة في أن النتيجة هي نسخة من القيمة التي يقرأها من "a")

الاختلاف الوحيد هو أنه إذا كانت كلمة "a" تعبيرًا أكثر تعقيدًا ، مثل استدعاء دالة ، فسيتم استدعاؤها مرتين في "a = a + 1" ، وأن أسبقية الوصمة تكون أقل بكثير من + + ، لذلك باستخدام المهمة بدلاً من ++ تتطلب أحيانًا أقواس إضافية: ++ a + ++ b أبسط للكتابة من (a + = 1) + (b + = 1) أو (a = a + 1) + (b = b + 1)


الاجابه 2:

++ a و a + 1 يشبهان نفس الشيء ولكن المشكلة تحدث عندما تستخدم u أكثر من متغير.

مثال:

كثافة العمليات = 10 ، ب ؛

++ a => يزيد القيمة a by one (o / p: a = 11)

a ++ => يزيد القيمة a by one (o / p: a = 11))

b = a ++ => عيّن أولاً القيمة a إلى a ثم زيادات بمقدار 0ne (o / p: a = 11، b = 10)

b = ++ a => يتم زيادة القيمة الأولى a بواحد ثم يتم تعيينها إلى b (o / p: a = 11 ، b = 11)


الاجابه 3:

++ a و a + 1 يشبهان نفس الشيء ولكن المشكلة تحدث عندما تستخدم u أكثر من متغير.

مثال:

كثافة العمليات = 10 ، ب ؛

++ a => يزيد القيمة a by one (o / p: a = 11)

a ++ => يزيد القيمة a by one (o / p: a = 11))

b = a ++ => عيّن أولاً القيمة a إلى a ثم زيادات بمقدار 0ne (o / p: a = 11، b = 10)

b = ++ a => يتم زيادة القيمة الأولى a بواحد ثم يتم تعيينها إلى b (o / p: a = 11 ، b = 11)


الاجابه 4:

++ a و a + 1 يشبهان نفس الشيء ولكن المشكلة تحدث عندما تستخدم u أكثر من متغير.

مثال:

كثافة العمليات = 10 ، ب ؛

++ a => يزيد القيمة a by one (o / p: a = 11)

a ++ => يزيد القيمة a by one (o / p: a = 11))

b = a ++ => عيّن أولاً القيمة a إلى a ثم زيادات بمقدار 0ne (o / p: a = 11، b = 10)

b = ++ a => يتم زيادة القيمة الأولى a بواحد ثم يتم تعيينها إلى b (o / p: a = 11 ، b = 11)


الاجابه 5:

++ a و a + 1 يشبهان نفس الشيء ولكن المشكلة تحدث عندما تستخدم u أكثر من متغير.

مثال:

كثافة العمليات = 10 ، ب ؛

++ a => يزيد القيمة a by one (o / p: a = 11)

a ++ => يزيد القيمة a by one (o / p: a = 11))

b = a ++ => عيّن أولاً القيمة a إلى a ثم زيادات بمقدار 0ne (o / p: a = 11، b = 10)

b = ++ a => يتم زيادة القيمة الأولى a بواحد ثم يتم تعيينها إلى b (o / p: a = 11 ، b = 11)