Trong ngôn ngữ lập trình, dữ liệu được lưu trữ trong bộ nhớ chính thông qua các biến để chúng ta có thể truy xuất, truy cập và thực hiện các phép toán trên dữ liệu. C++ có các kiểu dữ liệu được sử dụng để phân bổ dữ liệu trong bộ nhớ bằng cách sử dụng biến. Các kiểu dữ liệu này cho biết loại dữ liệu và được định nghĩa trước trong trình biên dịch C++. Chúng ta cũng có thể tạo liên kết giữa một dữ liệu với dữ liệu khác trong bộ nhớ bằng cách sử dụng toán tử & trong C++. Bài viết này sẽ giải thích các điểm sau đây.
Giải thích về int trong C++
Trong C++, int là một kiểu dữ liệu chỉ tham chiếu đến dữ liệu kiểu số nguyên. int là một từ khóa được dành riêng trong C++ chỉ có giá trị số nguyên để chúng ta có thể lưu nó trong bộ nhớ và thực hiện một số phép toán. Trong C++, chúng ta sử dụng kiểu dữ liệu int để khai báo các giá trị dương, âm và 0 trong chương trình của chúng ta.
Một biến kiểu số nguyên chiếm 4 byte trong bộ nhớ. Việc khai báo biến kiểu số nguyên trong C++ được đề cập dưới đây:
int a = 10;
Ở trên, một biến kiểu số nguyên được tạo với tên là a và một ô trong bộ nhớ chính có giá trị là 10.
Giải thích về int& trong C++
int& có nghĩa là tham chiếu đến một biến kiểu số nguyên. Điều này có nghĩa là nó sẽ trỏ đến một biến kiểu số nguyên đã tồn tại trong bộ nhớ. Một biến tham chiếu phải được khởi tạo để liên kết với một mục thực sự của cùng loại khi nó được khai báo. Dưới đây là việc khởi tạo int&:
int& ref_var = a;
Trong trường hợp này, ref_var là một tham chiếu đến a. Bất kỳ thao tác nào trên ref_var đều đại diện cho một hành động trên biến a. Ví dụ, nếu chúng ta gõ ref_var = 25; giá trị của a sẽ thay đổi thành 25 vì biến ref_var chỉ là một cái tên khác của biến a.
Ví dụ: Sự khác biệt giữa int và int& trong C++
Để hiểu sự khác biệt giữa int và int&, hãy xem các ví dụ dưới đây:
#include void changeValue(int value) { value = 20; } void changeValueByRef(int& ref_value) { ref_value = 20; } int main() { int a = 10; int b = a; changeValue(a); std::cout "a = " a std::endl; std::cout "b = " b std::endl; changeValueByRef(a); std::cout "a = " a std::endl; std::cout "b = " b std::endl; return 0; }
Kết quả
a = 10 b = 10 a = 20 b = 10
Trong đoạn mã trên, thay đổi giá trị của a không làm thay đổi giá trị của b, vì b chỉ là một bản sao của a mà được định nghĩa ở đầu hàm main.
Kết quả
a = 20 b = 10
Trong ví dụ này, ref_var là một tham chiếu đến a. Khi giá trị của a thay đổi, giá trị của ref_var cũng thay đổi, vì cả hai đều liên kết với cùng một giá trị.
Những điểm khác biệt quan trọng giữa int và int& trong ngôn ngữ C++
Bảng dưới đây sẽ giải thích một số sự khác biệt chung giữa int và int&:
int | int& |
---|---|
Kiểu dữ liệu nguyên thủy và chứa giá trị số là int. | int& là một điểm truy cập vào một biến số mà là một bí danh cho biến thực tế. |
Sử dụng int tương tác với giá trị thực của biến. | int& là một bí danh cho một số nguyên có thể được áp dụng để thay đổi biến thực tế. |
Một biến kiểu int chiếm phần bộ nhớ mới. | int& không cấp phát bộ nhớ mới, vì nó sử dụng bộ nhớ biến hiện tại. |
Phạm vi và thời gian tồn tại của biến số nguyên là độc lập. | Phạm vi và thời gian tồn tại của int& không được đặc tả. Chúng chỉ xảy ra trong khi biến tham chiếu int mà chúng tham chiếu tồn tại. |
Kết luận
Giống như các ngôn ngữ lập trình khác, C++ cũng cung cấp nhiều chức năng đã được xác định trước trong trình thông dịch C++. Một trong số các kiểu dữ liệu phổ biến là kiểu dữ liệu int, chấp nhận dữ liệu số nguyên, và int& là một biến tham chiếu int, thực hiện thay đổi trực tiếp các biến int đã khai báo. Sự khác biệt chính giữa int và int& là int khai báo một biến mới, trong khi int& là một biến tham chiếu thay đổi các biến int đã khai báo.