Danh mục

Bài giảng Con trỏ và quản lý bộ nhớ động - Hoàng Thân Anh Tuấn

Số trang: 11      Loại file: ppt      Dung lượng: 222.00 KB      Lượt xem: 15      Lượt tải: 0    
Thu Hiền

Hỗ trợ phí lưu trữ khi tải xuống: 3,000 VND Tải xuống file đầy đủ (11 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng Con trỏ và quản lý bộ nhớ động do Hoàng Thân Anh Tuấn biên soạn trình bày về tổ chức của chương trình; địa chỉ; biến con trỏ; các thao tác trên biến con trỏ; biến tĩnh và biến động; cấp phát và hủy biến động. Mời các bạn tham khảo bài giảng để hiểu rõ hơn về những nội dung này.
Nội dung trích xuất từ tài liệu:
Bài giảng Con trỏ và quản lý bộ nhớ động - Hoàng Thân Anh TuấnCon trỏ và quản lý bộ nhớ động Hoàng Thân Anh Tuấn Khoa Toán – Tin học Đại học Sư phạm TPHCMNội dung Tổ chức của chương trình Địa chỉ Biến con trỏ Các thao tác trên biến con trỏ Biến tĩnh và biến động Cấp phát và hủy biến độngTổ chức của chương trình Một chương trình được chia ra thành nhiều phân đoạn (segment). Mỗi segment có thể xem như là một mảng một chiều. Mỗi segment lưu một loại dữ liệu nhất định. – Data Segment: lưu các biến toàn cục – Stack Segment: lưu các biến cục bộ của các hàm và các thông tin khác – Heap Segment: lưu các biến động – Code Segment: lưu các chỉ thị đoạn mã của chương trìnhĐịa chỉ Một ô nhớ bất kỳ (một biến bất kỳ) trong chương trình có một địa chỉ duy nhất. Mỗi địa chỉ gồm có hai thành phần: – Tên segment lưu biến – Vị trí của biến trong segment Địa chỉ thường được ký hiệu là segment:offset – Segment có thể là Data, Heap, Code, Stack – Offset là vị trí của biến trong segment tương ứngVí dụint a;int main(){ 16 16 int b; 12 12 double c; 8 c 8 … 4 4 return 0; 0 b 0 a} Stack DataBiến con trỏ Là biến dùng để lưu giá trị địa chỉ Cú pháp khai báo một biến con trỏ Kiểu* tên-biến; – Ý nghĩa: khai báo một biến con trỏ dùng để lưu địa chỉ của các biến thuộc kiểu đã chỉ ra. – Biến con trỏ có kích thước 4 bytes (hệ điều hành 32 bit) Ví dụ: – int* pint; // khai báo một biến con trỏ dùng để lưu địa chỉ của các biến thuộc kiểu int. – double* p; // khai báo một biến con trỏ dùng để lưu địa chỉ của các biến thuộc kiểu double.Các thao tác trên con trỏ Phép lấy địa chỉ: – Kí hiệu: & – Cú pháp: &tên-biến – Ý nghĩa: lấy địa chỉ của biến đi kèm. Biến được lấy địa chỉ phải thuộc kiểu mà con trỏ có thể lưu địa chỉ. – Ví dụ: int a = 5; int* pa = &a; // pa sẽ lưu địa chỉ của biến a Phép khử địa chỉ – Kí hiệu: * – Cú pháp: *tên-biến-con-trỏ – Ý nghĩa: truy xuất đến vùng nhớ có địa chỉ đang được lưu bởi biến con trỏ đi kèm – Ví dụ: int a = 5; int* pa = &a; *pa = 6; cout Biến tĩnh và biến động Biến tĩnh Biến động Có tên Không có tên Kích thước cố định Kích thước không cố định Được cấp phát tự động trong Data Được cấp phát trong Heap Segment hoặc Stack Segment Segment Phạm vi sử dụng từ lúc khai báo Phạm vi sử dụng bắt đầu từ lúc đến hết khối gần nhất chứa nó. được tạo ra và kết thúc khi bị hủy. Tự động giải phóng khi hết phạm vi Không tự động giải phóng. Lập sử dụng trình viên phải lo việc này.Cấp phát biến động Không có tên, chỉ có địa chỉ  dùng biến con trỏ để lưu địa chỉ. Cú pháp: – Biến-con-trỏ = new Kiểu; – Biến-con-trỏ = new Kiểu[số phần tử]; Ví dụ: – int* p = new int; – double* pd = new double[10];Hủy biến động Thông qua biến con trỏ lưu địa chỉ của biến động. Cú pháp: – delete biến-con-trỏ; – Delete [] biến-con-trỏ; Ví dụ: – delete p; – delete [] pd;

Tài liệu được xem nhiều: