01/10/2018, 17:35

Tham chiếu biến và tham chiếu con trỏ?

Mình vẫn chưa hiểu lắm về phần tham chiếu như sau:

void swap(int *&a,int *&b)
{
	int temp = *a;
	*a=*b;
	*b=temp;
}
void swap(int &a,int &b)
{
	int temp = a;
	a=b;
	b=temp;
}

Ai giải thích giùm mình đc k ạ?
2 cách ghi khác nhau và cùng thực hiện chức năng giống nhau, vậy thì cái tham chiếu con trỏ kia có tác dụng gì khác k?
Thanks

rogp10 viết 19:49 ngày 01/10/2018

Tham biến qua con trỏ là kiểu cũ rồi truyền qua tham chiếu thì cú pháp sẽ gọn hơn, thay vì swap(&a, &b);.

Harry Stormborn viết 19:47 ngày 01/10/2018

Cảm ơn 2 bạn nhé. Mình hiểu r ạ

Lâm Quang Minh viết 19:37 ngày 01/10/2018

Code đầu là tạp nham,
Để mình giải thích kỹ hơn tí
Ngày xưa ngôn ngữ C chính thống không có pass tham số kiểu ref
Nên muốn truyền tham số dạng ref phải truyền con trỏ
Code

void swap(int *a, int *b)
{
 .....
}

Giả sử có int x=5, y=7;
Gọi swap(&x, &y)

Sau này ngôn ngữ có ngôn ngữ C++
Mới có dụ pass ref variable như cách 2

void swap(int& a, int& b)
{
...
}

Thì cách viết nào cũng đc, quan trọng mình phải hiểu

Harry Stormborn viết 19:50 ngày 01/10/2018

Oh, cảm ơn b nhiều. Tại mình thấy nhiều cách viết đâm ra hơi lưỡng lự k biết mỗi kiểu có tác dụng gì.
=))

Bài liên quan
0