Passaggio per valore
#include <iostream>
using namespace std;
void valore (int v){
    v++;
    cout << "Valore della variabile temporanea interna alla funzione = " << v << endl;
}
int main(){
    int x = 123;
    valore(x);
    cout << "Valore della variabile esterna = " << x << endl;
    return 0;
}
Per riferimento C++
#include <iostream>
using namespace std;
void riferimento(int &v){
    v++;
    cout << "Valore della variabile esterna chiamata dall'interno della funzione = " << v << endl;
}
int main(){
    int x = 123;
    riferimento(x);
    cout << "Valore della variabile esterna = " << x << endl;
    return 0;
}
Per riferimento C
#include <iostream>
using namespace std;
void riferimento(int *v){
    (*v)++;
    cout << "Valore della variabile esterna chiamata dall'interno tramite puntatore = " << *v << endl;
}
int main(){
    int x = 123;
    riferimento(&x);
    cout << "Valore della variabile esterna = " << x << endl;
    return 0;
}