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 ạ?

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ị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.

3 Likes

Nhà em, nằm ở địa chỉ abcxyz.

Em thì bảo : Đấy là “nhà em”.
Bố em lại bảo: Đấy là “nhà tôi”.

Thực tế đều là một chỉ khác nhau “tên gọi”. Nhà bố em cháy thì cũng như nhà em cháy ::))

4 Likes

Sai nhé, “nhà tôi” là để nói về mụ vợ nhé, không phải căn nhà :D.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?