Cho e hỏi tại sao hai biến cùng địa chỉ khi thay đổi giá trị của một biến thì biến kia lại thay đổi theo ạ ??
int32_t var = 10;
int32_t & var_reference = var;
cout << "Value of var: " << var << endl;
cout << "Value of var_reference: " << var_reference << endl;
var++; //Increase value of var
var_reference++; //Increase value of var_reference
cout << "New value of var: " << var << endl;
cout << "New value of var_reference: " << var_reference << endl;
Hiểu vầy cho dễ: 2 biến cùng địa chỉ không khác gì cái hộp hình khối lập phương có 2 cái lỗ ở hai mặt khác nhau cùng thông với một trái chuối đặt giữa hộp. Khi bạn lấy cây chọc vào lỗ nào để đâm quả chuối thì quả chuối đều bị thủng. Và lúc này, ghé mắt vào lỗ còn lại nhìn thì thấy quả chuối bị hư hỏng.
Đùa tí chơi như trên, nếu bạn đọc sách về lập trình C/C++ thì cần đọc rõ chương/ phần/ đoạn nói về tham trị và tham biến. Ngay trên Dạy Nhau Hoc này cũng đã đầy bài như vậy:
Tiếng Việt quá rắc rối, đọc tiếng Anh thì Value Type and a Reference Type, và Pointer nữa. Nếu vẫn mù mờ, xin tìm hiểu thêm về Kiến trúc máy tính.
Ngày nay nhiều lập trình viên viết chương trình lỗi quá nhiều, thời gian debug tốn gấp nhiều lần viết code có lẽ do họ chẳng biết gì về kiến trúc máy tính, trong khi đó, ngày xưa người ta viết nên cả trình biên dịch với rất ít bug.