GiaoTrinhC++(27Jun21)

(Hoang2711) #1
Ngôn ngữ lập trình C++

Tin Học Cho Mọi Người • 35

2. Địa chỉ bộ nhớ


Trong ví dụ trước, toán tử & được dùng để tạo biến tham chiếu. Nhưng nó cũng có thể được
dùng để lấy địa chỉ bộ nhớ của một biến, đó là vị trí nơi mà biến được lưu trữ trong máy tính.


Khi một biến được tạo trong C++, một địa chỉ bộ nhớ được gán cho biến. Và khi ta gán một trị
cho biến, trị đó được lưu trữ tại địa chỉ bộ nhớ này. Để truy cập địa chỉ của biến, hãy sử dụng
toán tử & liền trước tên biến, và kết quả sẽ đại diện cho nơi biến được lưu trữ.


Cụ thể, nếu food là một tên biến, thì truy cập food sẽ cho trị của food, và &food sẽ cho địa chỉ của
food. Kể cả khi food có một reference name như &meal, thì truy cập meal sẽ cho trị của food, và
&meal sẽ cho địa chỉ của food.


Ví dụ: #include , #include
using namespace std;
int main() { string food = "Burger"; string &meal = food ;
cout << "Boston " << food << "\nDonair "<< meal << endl ;
cout << food << " at memory address: " << &food << endl;
cout << meal << " at memory address: " << &meal << endl;
return 0; }


Kết quả:

Boston Burger
Donair Burger
Burger at memory address: 0x7ffdc3c30200
Burger at memory address: 0x7ffdc3c30200

Lưu ý: Địa chỉ bộ nhớ ở dạng thập lục phân hexadecimal (0x..). Hơn nữa bạn có thể không nhận
được kết quả tương tự trong chương trình của mình.


Có ích lợi gì để biết địa chỉ bộ nhớ?


Tham chiếu (references) và con trỏ (pointers, mà bạn sẽ tìm hiểu tiếp theo) là rất quan trọng
trong C++, bởi vì chúng cung cấp cho bạn khả năng thao tác dữ liệu trong bộ nhớ của máy tính



  • có thể làm giảm mã và cải thiện hiệu suất.


Hai tính năng này là một trong những tính năng làm cho C++ nổi bật hơn các ngôn ngữ lập
trình khác, như Python và Java.


CON TRỎ C++ (POINTERS)



  1. Tạo con trỏ


Bạn đã biết được từ phần trước, rằng chúng ta có thể lấy địa chỉ bộ nhớ của một biến bằng cách
sử dụng toán tử &:


Ví dụ:

#include <iostream>, <string>
using namespace std;
int main() { string food = "Pizza"; // tạo biến food
cout << food << "\n"; // in trị của food (Pizza)
cout << &food ; // in địa chỉ của food (0x6dfed4)
return 0; }
Free download pdf