按值传递(Call by value)是指将参数的值复制给函数中的形参,函数中对形参的修改不会影响到原始参数的值。
示例代码:
#include
void increment(int num) {
num++;
std::cout << "Inside increment function: " << num << std::endl;
}
int main() {
int num = 5;
std::cout << "Before calling increment function: " << num << std::endl;
increment(num);
std::cout << "After calling increment function: " << num << std::endl;
return 0;
}
输出:
Before calling increment function: 5
Inside increment function: 6
After calling increment function: 5
通过指针引用(Call by reference to a pointer)是指将参数的地址传递给函数中的形参,函数中对形参的修改会影响到原始参数的值。
示例代码:
#include
void increment(int* pNum) {
(*pNum)++;
std::cout << "Inside increment function: " << *pNum << std::endl;
}
int main() {
int num = 5;
std::cout << "Before calling increment function: " << num << std::endl;
increment(&num);
std::cout << "After calling increment function: " << num << std::endl;
return 0;
}
输出:
Before calling increment function: 5
Inside increment function: 6
After calling increment function: 6