Ý nghĩa khác nhau, con trỏ là biến lưu trữ địa chỉ. Còn tham chiếu là “alias” hay là tên gọi khác của biến. Ví dụ ta có bạn Huy, ở nhà tên Cu Tí. Thì Huy là biến, Cu Tí là tham chiếu. Hai cái tên này chỉ đến một và chỉ một người.
Truyền vào cái gì là phụ thuộc vào prototype của hàm đấy. Ví dụ hàm đấy nhận vào con trỏ thì chỉ truyền được con trỏ và tương đương cho tham chiếu. Ví dụ hàm sau
Chỉ nhận tham chiếu
void foo(int &Huy);
Chỉ nhận con trỏ
void foo(int *Huy);
Cái này là bạn hiểu chưa rõ tham chiếu và con trỏ đấy, hai thứ này khác nhau. Mình xem kỹ cái prototype của hàm là biết sẽ phải truyền cái gì.