Hỏi về dấu & trong C

Một cách dễ hiểu mình sẽ đưa ra ví dụ cho bạn.

#include <iostream>
using namespace std;

// Truyền tham trị
void increment(int a) {
    a++;
    cout << a << endl;
}

// Truyền tham chiếu
void incrementR(int &a) {
    a++;
    cout << a << endl;
}

int main() {

    int x = 10;

    increment(x);          // Output: 11
    cout << x << endl;     // Output: 10

    incrementR(x);          // Output: 11
    cout << x << endl;      // Output: 11

    return 0;
}

Như bên trên thì hàm mà ta không có toán tử & ở trong tham số của nó thì mặc định sẽ là truyền giá trị của đối số vào hàm đó và dĩ nhiên giá trị gốc của biến x sẽ không bị thay đổi. Còn nếu ta dùng phép tham chiếu tới biến đó thì khi ta thao tác bên trong hàm với đối số truyền vào giá trị của biến gốc được truyền vào sẽ bị thay đổi.