#include void increment_by_value(int x) { x += 1; } void increment_by_reference1(int* x) { *x += 1; } void increment_by_reference2(int& x) { x += 1; } int main() { int x = 100; std::cout << "original: " << x << std::endl; increment_by_value(x); std::cout << "after by-value: " << x << std::endl; increment_by_reference1(&x); std::cout << "after by-reference (pointer): " << x << std::endl; increment_by_reference2(x); std::cout << "after by-reference (reference): " << x << std::endl; }