أول مرة هنا ؟ تفحص قواعد المشاركة و معلومات أخرى عن عرب overflow!
x

مالفرق بين x++ و ++x فى لغة ال C++ ؟

+3 صوت
1,827 مشاهدات

ما هو الفرق بين :-

int x; 
x++;
++x;

4 إجابة

+6 صوت

 
أفضل إجابة

نأخذ على سبيل المثال :-

#include <iostream>

using namespace std;

int main()
{
   int x =1; 
   cout<<x++<<endl; 

   int y =1; 
   cout<<++y<<endl;

   return 0;
}

اذا قمت بتشغيله تجد خرج

   cout<<x++<<endl; 

عبارة عن الرقم 1 لأنه يتم تنفيذ أمر زيادة الرقم بعد الانتهاء من السطر , بمعنى أن قيمة ال x تصبح 2 بعد تنفيذ سطر الاخراج لكن عند لحظة الاخراج كانت قيمتها 1

, أما الأمر الثانى

cout<<++y<<endl;

فخرجه الرقم 2 , لأنه هنا يتم تنفيذ أمر الزيادة أولا ثم يتم تنفيذ أمر الطباعة .

هذا هو خرج البرنامج :-

1                                                                                                                                                                        
2   

يمكنك تجربة البرنامج من هنا http://goo.gl/6z8Gt7 بالضغط على compile ثم execute

+3 صوت

++X

int x = 0; //create an integer and set its vale to zero
cout<<(x++) + 12 // add x to 12 and then increment x

نفس الكود دا كان ممكن يتكتب بالشكل دا

int x = 0;
cout<<x+12;
x++;

X++

دي هتعمل العكس بمعني انها هتزود المتغير بواحد و بعد كدا تدخله فالعمليه الحسابيه
مثال

int x =0 ;
cout<<(++x)+12; // increment x then add it to 12
نفس الكود دا ممكن اكتبه بالشكل دا
int x =0;
x++;
cout<<x+12;
اجابة جميلة , أعجبنى موضوع كتابة الكود بطريقة أخرى , أحييك
+1 صوت

في كلا الحالتين نفس السرعه لانه بيتنفذ في الاسيمبلي بأمر INC الاختلاف ان في حالة

++x;

علي سبيل المثال

int x=0;
    for(int i=0;i<5;++i)
        cout << ++x <<endl; 

هيبدأ يزود x في اول دوره
وهيطبع الارقام من 1 حتي5
اما في حالة

  x++;

بنفس المثال السابق

int x=0;
    for(int i=0;i<5;++i)
        cout << x++ <<endl;

هيتحرك دوره الاول وبعد كدا هيجمع
وهيطبع الارقام من 0 حتي 4

بالتوفيق ان شاء الله

0 صوت

X++
means use then edit

++X
means edit then use

ما راح تفرق اذا كان في امر طباعة واحد في البرنامج
بتفرق اذا كان في امرين طباعة متتاليين في نفس البرنامج
وقتها نستطيع التفريق بينهما بوضوح

Araboverflow أهلا بكم فى عرب Overflow
المجتمع العربى للأسئلة و الأجوبة التقنية.

أحدث الشارات

100 نقطة
- AHMED002177 -
سؤال ذائع الصيت
- أسماء -
100 نقطة
- MuhGhunaim -
سؤال ذائع الصيت
- Mohamed Slama -
100 نقطة
- عرفة غلمش -
...