Increment and Decrement Operators

    C Language  इंक्रीमेंट और डिक्रीमेंट ऑपरेटर्स भी प्रदान करती  है, ऐसे Operator जो किसी variable की वैल्यू में एक जोड़ने या घटाने के काम में आते हैं,इन्हे  क्रमश:  increment(क्रीमेंट) ++और Decrement(डिक्रीमेंट) --ऑपरेटर्स कहते हैं। 


    OperatorDescription (both are unary)
    ++++ ऑपरेंड का मान 1 से बढ़ा देता है
    ---- ऑपरेंड का मान 1 से घटा देता है


    उपरोक्त Operator को दो प्रकार से प्रयोग किया जाता हैं Pre(प्री) एवं Post(पोस्ट)। 
     Pre(प्री) Increment Operator को Operand के पहले लगाया जाता हैं, (जैसे ++p)। 
     Post(पोस्ट) Increment Operator को Operand के बाद लगाया जाता हैं( जैसे ++p)।  


    जब इन ऑपरेटर्स को अकेले प्रयोग किया जाता है तो दोनों के परिणाम समान ही होते हैं। वहीं यदि इनका प्रयोग किसी एक्सप्रेशन में किया जाता है तो दोनों के परिणाम अलग-अलग हो सकते हैं।


    1.  Arithmetic operator 
    2. Relational operator
    3. Logical operator 
    4. Assignment operator
    5. Increment and Decrement operator 
    6. Conditional operator 
    7. Bitwise operator
    8. Special operator

    Pre Increment Operator

    जब Expression(एक्सप्रेशन) में इन्हें प्री ऑपरेटर की भांति प्रयोग किया जाता है तो इनमें पहले इंक्रीमेंट होता है। और बाद में उस बढ़ी हुई वैल्यू का Expression(एक्सप्रेशन) में प्रयोग किया जाता है।

    जैसे:-

       #include <stdio.h>
       #include <conio.h>
       main()
       {
        int q,p = 10;
        q = ++p;
        printf("\n q = %d",q);
        printf("\n p = %d",p);
        getch();
       }
       

    output:-

     q = 11
     p = 11

    उपरोक्त उदाहरण में q मान 11 व p का मान भी 11 ही प्रिंट होगा

    Post increment Operator

    जब expression(एक्सप्रेशन) में इन्हें post operator(पोस्ट ऑपरेटर) की भांति प्रयोग किया जाता है तो इन्हें increment(इंक्रीमेंट) तो होता ही है किंतु expression(एक्सप्रेशन) में प्रयोग होने वाले वैल्यू  increment(इंक्रीमेंट) से पहले वाली value होती है। 

    जैसे:-


       #include <stdio.h>
       #include <conio.h>
       main()
       {
        int q,p = 10;
        q = p++;
        printf("\n q = %d",q);
        printf("\n p = %d",p);
        getch();
       }

    Output:-

    q = 10
    p = 11

    उपरोक्त उदाहरण में q का मान 10 ही  print किया जाएगा, किंतु p कमान 11 प्रिंट होगा।  ऐसा होने का कारण यह है कि जब q = p++; का प्रयोग किया जा रहा है तो क्योंकि ++ को पोस्ट की भांति प्रयोग किया गया है,  अतः p में   increment होकर उसकी वैल्यू कोई 11 हो जाएगी, किंतु उसकी   increment से पहले वाली वैल्यू 10 का ही प्रयोग   expression में किया जाएगा। इसी कारण से q में  10 ही store हुआ है। 

    जिस प्रकार pre   और    post increment operator का प्रयोग किया जाता है ठीक उसी प्रकार pre  और post decrement operators भी प्रयोग किया जा सकता है। 

    Example #1:  pre Increment Operator


        #include <stdio.h>
        #include <conio.h>
        void main()
        {
            int q, p = 10;
            q = ++p;
            printf("The value of  q is = %d \n", q);
            printf("The value of  p is = %d \n", p);
            getch();
        }

    Output:-

    The value of  q is 11
    The value of  p is 11


    Example #2:  post Increment Operator


        #include <stdio.h>
        #include <conio.h>
        void main()
        {
            int q, p = 10;
            q = p++;
            printf("The value of  q is = %d \n", q);
            printf("The value of  p is = %d \n", p);
            getch();
        }

    Output:-

    The value of  q is 10
    The value of  p is 11


    Example #3:  post Decrement Operator


        #include <stdio.h>
        #include <conio.h>
        void main()
        {
            int q, p = 10;
            q = p--;
            printf("The value of  q is = %d \n", q);
            printf("The value of  p is = %d \n", p);
            getch();
        }

    Output:-

    The value of  q is 10
    The value of  p is 9


    Example #4:  Pre Decrement Operator


        #include <stdio.h>
        #include <conio.h>
        void main()
        {
            int q, p = 10;
            q = --p;
            printf("The value of  q is = %d \n", q);
            printf("The value of  p is = %d \n", p);
            getch();
        }

    Output:-

    The value of  q is 9
    The value of  p is 9


    Example #5:  Pre  Increment Operator


       #include <stdio.h>
       #include <conio.h>
       main()
       {
        int a = 10,b;
        b = a +  +++  ++a;
        printf("\n a = %d \n b = %d",a,b);
        getch();
       }

    Output:-

    a = 12 
    b = 34


    Example #6:  post Increment Operator


       #include <stdio.h>
       #include <conio.h>
      void main()
       {
        int a = 10,b;
        b = a + a++ +  a++;
        printf("\n a = %d \n b = %d ",a,b);
        getch();
       }

    Output:-

    a = 12 
    b = 32