C / C ++中的预增和后增运算符
在C和C++编程语言中,有一个称为递增运算符的运算符,由++表示。它用于将变量的值增加1。
增量运算符有两种,
预递增运算符
后递增运算符
预递增运算符
在表达式中使用变量前,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
注意:可能存在编译器依赖性。