C / C ++中的预增和后增运算符

在C和C ++编程语言中,有一个称为递增运算符的运算符,由++表示。它用于将变量的值增加1。

增量运算符有两种,

  1. 预递增运算符

  2. 后递增运算符

预递增运算符

在表达式中使用变量前,Pre-increment运算符将变量的值增加1,即,在对表达式求值之前,将其值递增。

语法:

    ++a

示例

    Input:
    a = 10;
    b = ++a; 

    Output:
    a = 11
    b = 11

在表达式b = ++ a中,将首先对++ a求值,因此a的值为11,然后将执行赋值操作。

程序演示预增量示例

#include <iostream>
using namespace std;

int main(){
    int a = 10;
    int b = 0;

    cout << "Before the operation..." << endl;
    cout << "a: " << a << ", b: " << b << endl;

    //预增量操作
    b = ++a;

    cout << "After the operation..." << endl;
    cout << "a: " << a << ", b: " << b << endl;

    return 0;
}

输出:

Before the operation...
a: 10, b: 0
After the operation...
a: 11, b: 11

后递增运算符

在表达式中使用变量后,Post-increment运算符会将变量的值增加1,即,对表达式求值后,该值将递增。

语法:

    a++

示例

    Input:
    a = 10;
    b = a++;

    Output:
    a = 11
    b = 10

在表达式b = a ++中,将a的值分配给b后,将对a ++求值。因此,b的值为10,然后将评估a ++,然后a的值为11。

演示后增量示例的程序

#include <iostream>
using namespace std;

int main(){
    int a = 10;
    int b = 0;

    cout << "Before the operation..." << endl;
    cout << "a: " << a << ", b: " << b << endl;

    //预增量操作
    b = a++;

    cout << "After the operation..." << endl;
    cout << "a: " << a << ", b: " << b << endl;

    return 0;
}

输出:

Before the operation...
a: 10, b: 0
After the operation...
a: 11, b: 10

预增和后增运算符之间的区别

由于两者均用于将变量的值增加1。但是基于上面的讨论和示例,预递增运算符和后递增运算符之间的区别非常简单。增量前增加了对表达式进行评估前的值,增量后增加了对表达式进行评估后的值。

演示使用前后递增运算符的程序

#include <iostream>
using namespace std;

int main(){
    int A = 10, B = 20, C = 0;

    C = A++ + ++B * 10 + B++;
    cout << A << "," << B << "," << C;

    return 0;
}

输出:

11, 22, 241

说明:

根据以上讨论,快递将像这样进行评估,

    Values are,
    A = 10
    B = 20
    C = 0

    Expression is,
    C   = A++ + ++B * 10 + B++;

    C   = 10 + 21 * 10 + 21
        = 10 +210 +21
        = 241
    
    Finally, the values of A, B and C will be,
    A = 11
    B = 22
    C = 241

注意:可能存在编译器依赖性。