Hỏi về sự khác nhau giữa * và *&

Em muốn hỏi sự khác nhau giữa * và *& em có ví dụ sau thì giá trị của p và p1 là giống hệt nhau thế tại sao vẫn là kiểu địa chỉ nhưng int *&p1 có thể viết =p nhưng không thể viết int *&p1 = &a được ạ ai giải thích cho e với

int a = 5;
int *p = &a;
int *&p1 = p;
cout << p << endl;
cout << p1 << endl;
cout << *p << endl;
cout << *p1 << endl;

Tra google Biến tham chiếu nhé !

vì biến tham chiếu phải tồn tại trong runtime (lúc chạy chương trình). &a tức là lấy địa chỉ của a, chỉ tồn tại trong compile time, hay &a chỉ tồn tại tạm thời lúc biên dịch code thôi, biên dịch xong thì &a cũng ko còn cần nữa.

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