References let a function work with the caller's original variable.

References

references.cpp
#include <iostream>

void addBonus(int& score, int bonus) {
    score += bonus;
}

int main() {
    int score = ;
    int bonus = ;

    addBonus(score, bonus);

    std::cout << "bonus=" << bonus << std::endl;
    std::cout << "score=" << score << std::endl;
    return 0;
}
#include <iostream>

void addBonus(int& score, int bonus) {
    score += bonus;
}

int main() {
    int score = ;
    int bonus = ;

    addBonus(score, bonus);

    std::cout << "bonus=" << bonus << std::endl;
    std::cout << "score=" << score << std::endl;
    return 0;
}
#include <iostream>

void addBonus(int& score, int bonus) {
    score += bonus;
}

int main() {
    int score = ;
    int bonus = ;

    addBonus(score, bonus);

    std::cout << "bonus=" << bonus << std::endl;
    std::cout << "score=" << score << std::endl;
    return 0;
}
#include <iostream>

void addBonus(int& score, int bonus) {
    score += bonus;
}

int main() {
    int score = ;
    int bonus = ;

    addBonus(score, bonus);

    std::cout << "bonus=" << bonus << std::endl;
    std::cout << "score=" << score << std::endl;
    return 0;
}
#include <iostream>

void addBonus(int& score, int bonus) {
    score += bonus;
}

int main() {
    int score = ;
    int bonus = ;

    addBonus(score, bonus);

    std::cout << "bonus=" << bonus << std::endl;
    std::cout << "score=" << score << std::endl;
    return 0;
}
#include <iostream>

void addBonus(int& score, int bonus) {
    score += bonus;
}

int main() {
    int score = ;
    int bonus = ;

    addBonus(score, bonus);

    std::cout << "bonus=" << bonus << std::endl;
    std::cout << "score=" << score << std::endl;
    return 0;
}
#include <iostream>

void addBonus(int& score, int bonus) {
    score += bonus;
}

int main() {
    int score = ;
    int bonus = ;

    addBonus(score, bonus);

    std::cout << "bonus=" << bonus << std::endl;
    std::cout << "score=" << score << std::endl;
    return 0;
}
#include <iostream>

void addBonus(int& score, int bonus) {
    score += bonus;
}

int main() {
    int score = ;
    int bonus = ;

    addBonus(score, bonus);

    std::cout << "bonus=" << bonus << std::endl;
    std::cout << "score=" << score << std::endl;
    return 0;
}
#include <iostream>

void addBonus(int& score, int bonus) {
    score += bonus;
}

int main() {
    int score = ;
    int bonus = ;

    addBonus(score, bonus);

    std::cout << "bonus=" << bonus << std::endl;
    std::cout << "score=" << score << std::endl;
    return 0;
}
reference parameter A reference parameter, written with `&`, can change the variable passed by the caller.