If parameters are passed by reference, like for the function dublicate(), variable values outside the function can be changed. Section 10.3 contains an example from the Tango world.
#include <iostream> using namespace std; // // passing parameters by reference // void duplicate (int& a, int& b, int& c) { a *=2; b *=2; c *=2; } // // passing parameters by value // int add (int a, int b, int c) { return a + b + c; } int main () { int x=1, y=3, z=7; int result; result = add (x, y, z); cout << " sum " << result << "\n"; duplicate(x, y, z); cout << "x=" << x << ", y=" << y << ", z=" << z; return 0; }