01/10/2018, 14:36

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;
Vô Thin viết 16:37 ngày 01/10/2018

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:

Ngày xưa mình hình dung thế này, không biết có giúp bạn dễ hiểu hơn không :p. Tham biến là khi truyền nó vào hàm, nó tạo ra một biến khác rồi gán giá trị truyền vào cho biến đó, sau khi kết thúc hàm thì biến mình truyền dữ liệu vào chả thay đổi gì cả. Tham chiếu là khi mình truyền một biến vào thì nó dùng biến đó để tính toán các kiểu trong hàm luôn, khi ra khỏi hàm thì biến được truyền vào đó bị thay đổi giá trị (do mình xài nó để tính toán trong hàm luôn mà :p)
Em xin chào các bạn và bậc tiền bối. Các bạn và các bậc tiền bối có thể chỉ giúp mình sự khác biệt giữa " Tham biến" và "Tham trị" được không ạ ? Và trong C và C++ có sự khác nhau không ạ ? Em đọc 1 bài trên cộng đồng C việt họ bảo trong C không có " Tham biến" khái niệm "Tham biến" chỉ có trong C++ thôi ạ . Và em đang tự học C đến chương 7.Hàm giáo trình của "Hanoi Aptech Computer Education Center" Ở ví dụ 3 có đoạn như thế này […
1/Có phải khi có nhiều giá trị trả về thì dùng tham biến? 2/Có phải khi có 1 giá trị trả về thì dùng tham trị? Mong mọi người giải đáp

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.

Văn Dương viết 16:42 ngày 01/10/2018

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 ::))

Vô Thin viết 16:42 ngày 01/10/2018

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

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

Bài liên quan
0