Con trỏ vs Tham chiếu: Sự khác biệt và So sánh

C và C++ là những ngôn ngữ lập trình được sử dụng phổ biến nhất vì đây là những cánh cửa cơ bản cho người mới bắt đầu bước vào thế giới lập trình. Con trỏ và tham chiếu là một số phương tiện hữu ích nhất mà các ngôn ngữ này cung cấp. Con trỏ được sử dụng trong C và C++, còn tham chiếu được hỗ trợ trong C++, Python và các ngôn ngữ khác.

Các nội dung chính

  1. Con trỏ lưu trữ địa chỉ bộ nhớ của các biến hoặc đối tượng, trong khi các tham chiếu đóng vai trò là bí danh cho các biến hiện có.
  2. Con trỏ có thể được gán lại cho các địa chỉ bộ nhớ khác nhau, trong khi các tham chiếu không thể thay đổi sau khi khởi tạo.
  3. Con trỏ yêu cầu tham chiếu rõ ràng để truy cập giá trị mà chúng trỏ tới, trong khi các tham chiếu có thể được sử dụng trực tiếp, giống như biến ban đầu.

Con trỏ so với tham chiếu

Con trỏ là một biến nhận địa chỉ bộ nhớ của một biến khác và nó có thể được khởi tạo nhiều lần trong chương trình tùy thuộc vào số lần cần thiết. Một tham chiếu là một biến chương trình thay thế và nó chỉ có thể được khởi tạo một lần trong toàn bộ chương trình.

Con trỏ so với tham chiếu

Con trỏ là một biến có địa chỉ hoặc vị trí của một biến khác làm giá trị của nó. Chúng có thể được khởi tạo ở bất kỳ đâu trong chương trình với các toán tử như '*' và '->'. Một biến con trỏ cũng có thể được biến thành null và chúng cũng hỗ trợ khởi tạo lại. Kiểu dữ liệu cơ sở khai báo các con trỏ, theo sau là dấu hoa thị và tên của con trỏ. 

Tham chiếu là một biến có tên khác cho một biến chương trình vốn đã tinh tế. Ngay khi một biến tham chiếu được tạo, nó phải được khởi tạo. Nó tạo bí danh của một biến khác. Toán tử & được sử dụng để tham khảo thiết kế. Chúng được tạo theo kiểu dữ liệu cơ sở, theo sau là '&' và tên biến.

Bảng so sánh

Các thông số so sánhPointerTài liệu tham khảo
Định nghĩaBiến chứa địa chỉ bộ nhớ của một biến khác được gọi là biến con trỏ.Một tham chiếu là bí danh của một biến khác, một tham chiếu đến nó.
tham chiếu nullGiá trị null có thể được gán cho một con trỏ.Một biến tham chiếu không được gán giá trị null. 
cú phápKiểu dữ liệu *Tên con trỏ; Trong đó Datatype là kiểu dữ liệu cơ sở và PointerName là tên của con trỏ được khai báo.Kiểu dữ liệu &ReferenceName = AnotherVariable; Trong đó ReferenceName là tên của tham chiếu và AnotherVariable là biến đang được tham chiếu.
Khởi tạoCon trỏ chưa được khởi tạo có thể được tạo.Tài liệu tham khảo không bao giờ có thể được tạo trong một uninitialized
Bắt đầu lạiCác biến con trỏ có thể được khởi tạo lại nhiều lần trong chương trình tùy theo nhu cầu.Một biến tham chiếu chỉ có thể được khởi tạo một lần trong một chương trình.
Ghim cái này ngay để nhớ sau
Ghim cái này

Con trỏ là gì?

Tóm lại, con trỏ là một biến chứa vị trí bộ nhớ hoặc địa chỉ của bất kỳ biến nào khác trong chương trình. Con trỏ có chức năng trong C và C++. Một biến con trỏ lưu trữ vị trí địa chỉ của biến trỏ. Các biến con trỏ có thể được khai báo và sau đó có thể được khởi tạo với biến có địa chỉ được xác định.

Cũng đọc:  SDK vs IDE: Sự khác biệt và So sánh

Hơn nữa, chúng có sự rõ ràng, vì một con trỏ số nguyên chỉ có thể chứa địa chỉ của một biến số nguyên. Con trỏ có cách khai báo rõ ràng. Ví dụ, int *point là một con trỏ tới một biến kiểu int, và double *ABC là một con trỏ tới một biến kiểu dữ liệu double. Khái niệm tương tự cũng áp dụng cho các loại dữ liệu khác. Do đó, một con trỏ được khai báo theo cách sau:

int *biến con trỏ;

Sau khi khai báo con trỏ, biến con trỏ được gán cho biến có địa chỉ được xác định. Câu lệnh khai báo trên sử dụng một con trỏ sẽ lưu trữ giá trị của một biến số nguyên. 

biến con trỏ = &a;

Ở đây, a là biến số nguyên được sử dụng ở phía bên kia của chương trình có địa chỉ được lưu trong một con trỏ biến. Con trỏ cũng đưa ra trách nhiệm phải được khởi tạo lại. Giá trị của họ có thể được thay đổi theo nhu cầu của họ. 

Tài liệu tham khảo là gì?

Một biến tham chiếu là bí danh cho một biến khác. Nói cách khác, biến tham chiếu đến biến tồn tại khác của chương trình được coi là biến tham chiếu.

Chúng có một hạn chế là chúng không thể được gán cho một giá trị null và chúng không thể được khai báo, chúng chỉ được khởi tạo. Sau khi tạo một tham chiếu, biến có thể được truy cập bằng tên tham chiếu hoặc theo tên ban đầu của nó. Tài liệu tham khảo được khởi tạo trực tiếp. Ví dụ, 

int &ref = var;

Ở đây, ref là tên của biến tham chiếu và nó trỏ đến biến var, được khởi tạo trong một phần khác của chương trình. Khi các giá trị của ref và var được in ra, ref và var được quan sát là có cùng giá trị. Con trỏ thuận lợi trong việc tiết kiệm bộ nhớ vì khi chúng được truyền dưới dạng đối số cho một hàm, chúng sẽ sử dụng vị trí bộ nhớ ban đầu cho mọi lời gọi hàm.

Cũng đọc:  SmartThings vs Home Assistant: Sự khác biệt và so sánh

Các biến tham chiếu không cung cấp quá trình khởi tạo lại và các biến này chỉ được khởi tạo một lần và duy nhất. Các tham chiếu không trỏ đến một biến bằng cách lưu trữ địa chỉ của nó trong một vị trí bộ nhớ riêng biệt. Nói một cách đơn giản, biến tham chiếu là tên thay thế cho biến hiện có. Đây chỉ là những bí danh trong tên khác của biến sẽ được tham chiếu.

Sự khác biệt chính giữa Con trỏ và Tham chiếu

  1. Biến con trỏ được tham chiếu bỏ qua theo tham chiếu, trong khi biến tham chiếu được tham chiếu bỏ qua theo giá trị.
  2. Con trỏ hỗ trợ khả năng trỏ tới các con trỏ khác, trong khi các tham chiếu thiếu ưu điểm này. Một biến tham chiếu không thể được tạo để trỏ đến nhiều biến.
  3. Con trỏ hỗ trợ sử dụng toán tử số học và hoạt động như toán hạng, trong khi các biến tham chiếu không thể tương thích với các phép toán số học.
  4. Kích thước và địa chỉ bộ nhớ của biến con trỏ nằm trên ngăn xếp, trong khi biến tham chiếu có địa chỉ bộ nhớ của biến ban đầu, nhưng nó cũng chiếm một chút dung lượng trên ngăn xếp. 
  5. Con trỏ có lợi thế khai báo, trong khi các tham chiếu chỉ được khởi tạo.
dự án
  1. https://link.springer.com/article/10.1023/A:1015362608943
  2. https://dl.acm.org/doi/pdf/10.1145/99583.99599
chấm 1
Một yêu cầu?

Tôi đã nỗ lực rất nhiều để viết bài đăng trên blog này nhằm cung cấp giá trị cho bạn. Nó sẽ rất hữu ích cho tôi, nếu bạn cân nhắc chia sẻ nó trên mạng xã hội hoặc với bạn bè/gia đình của bạn. CHIA SẺ LÀ ♥️

Sandeep Bhandari
Sandeep Bhandari

Sandeep Bhandari có bằng Cử nhân Kỹ thuật Máy tính của Đại học Thapar (2006). Ông có 20 năm kinh nghiệm trong lĩnh vực công nghệ. Anh rất quan tâm đến các lĩnh vực kỹ thuật khác nhau, bao gồm hệ thống cơ sở dữ liệu, mạng máy tính và lập trình. Bạn có thể đọc thêm về anh ấy trên trang sinh học.

12 Comments

  1. C và C++ có kiến ​​thức cơ bản nhưng điều quan trọng là phải hiểu các con trỏ và tài liệu tham khảo, điều này có thể hơi khó hiểu đối với người mới bắt đầu.

  2. Hiểu con trỏ và tài liệu tham khảo là điều cần thiết. Bài viết này cung cấp một sự hiểu biết toàn diện về các khái niệm này.

  3. C và C++ là những ngôn ngữ lập trình được sử dụng phổ biến nhất vì đây là những cánh cửa cơ bản cho người mới bắt đầu bước vào thế giới lập trình. Con trỏ và tham chiếu là một số phương tiện hữu ích nhất mà các ngôn ngữ này cung cấp. Con trỏ được sử dụng trong C và C++, còn tham chiếu được hỗ trợ trong C++, Python và các ngôn ngữ khác.

Bình luận

Chúng tôi sẽ không công khai email của bạn. Các ô đánh dấu * là bắt buộc *

Bạn muốn lưu bài viết này cho sau này? Nhấp vào trái tim ở góc dưới cùng bên phải để lưu vào hộp bài viết của riêng bạn!