📅  最后修改于: 2023-12-03 15:07:37.703000             🧑  作者: Mango
在 C++ 中,增量运算符包括前置递增运算符 ++i
和后置递增运算符 i++
。在函数参数传递时,这两种运算符的行为不同,需要注意。
前置递增运算符会在自身值递增后返回该值。因此,当作为函数参数传递时,函数内部操作的是原变量的值。例如:
void foo(int& x) {
++x;
}
int main() {
int y = 1;
foo(y);
std::cout << y; // 输出 2
}
在上述示例中,foo
函数将 y
增加了 1,因此在 main
函数中输出的值为 2。
后置递增运算符在递增前返回原值的副本,递增后自身值发生改变。因此,当作为函数参数传递时,函数内部操作的是副本的值。例如:
void bar(int& x) {
x++;
}
int main() {
int y = 1;
bar(y++);
std::cout << y; // 输出 2
}
在上述示例中,bar
函数将 y
的副本增加了 1,因此在 main
函数中输出的值为 2。
需要注意的是,如果将后置递增运算符放在变量名之前,则会在使用变量之前将其递增。例如:
int main() {
int y = 1;
bar(++y);
std::cout << y; // 输出 2
}
在上述示例中,bar
函数将 y
递增后传递给函数,因此在 main
函数中输出的值为 2。