1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Ngôn ngữ lập trình - Con trỏ ppt

25 1,4K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 148,5 KB

Nội dung

1 Lập trình C++ 1 2 Con trỏ 1. Biến và con trỏ 2. Cấp phát và giải phóng bộ nhớ động 3. Mô hình bộ nhớ chương trình 4. Quan hệ giữa mảng và con trỏ 5. Phân biệt tham chiếu và con trỏ 6. Mảng con trỏ. Con trỏ cấu trúc. Con trỏ void 7. Con trỏ làm đối số trong hàm 8. Review 9. Bài tập 3 Biến và con trỏ  Khai báo  int a = 5; // a là biến chứa giá trị int  int *p; // p là con trỏ int, p là biến chứa địa chỉ // của ô nhớ kiểu int  Truy nhập ô nhớ  p = &a; // toán tử & cho phép lấy địa chỉ của một biến, // p chứa địa chỉ của biến a  *p = 7; // toán tử * cho phép truy nhập giá trị ô nhớ // thông qua địa chỉ, giá trị của ô nhớ có địa // chỉ trong p được gán giá trị 7 4 Biến và con trỏ  Mô tả: 1. int a = 5; // a là biến chứa giá trị int 2. int *p; // p là con trỏ int, p là biến chứa địa chỉ 3. p = &a; // p trỏ đến a 4. *p = 7; // gán giá trị qua p a 1001 5 p 1100 1. Cấp ô nhớ cho a p 1100 1001 2. Cấp ô nhớ cho p a 1001 5 3. p chứa địa chỉ của biến a p 1100 1001 a 1001 7 4. gán giá trị vào ô nhớ có địa chỉ trong p 5 Biến và con trỏ  Cho biết kết quả trên màn hình:  int a = 5;  int *p;  p = &a;  cout<< *p <<“\t”<< a <<endl;  *p = 8;  cout<< *p <<“\t”<< a <<endl;  a = 9;  cout<< *p <<“\t”<< a <<endl; 6 Cấp phát và giải phóng bộ nhớ động  Biến tĩnh  Là biến được cấp vùng nhớ ngay khi lời khai báo được thực hiện  Tự động mất đi khi ra khỏi phạm vi khai báo  Biến tĩnh thường được sử dụng thông qua tên biến  Biến động  Là biến được cấp vùng nhớ bất kì khi nào chương trình yêu cầu  Bị mất đi khi chương trình giải phóng vùng nhớ  Biến động thường được sử dụng thông qua con trỏ 7 Cấp phát và giải phóng bộ nhớ động  Toán tử new: Cấp phát vùng nhớ  int *p, *q, *r;  p = new int; // cấp phát ô nhớ cỡ int  q = new int(5); // cấp phát đồng thời khởi tạo giá trị  r = new int[8]; // cấp phát mảng động  Toán tử delete: Giải phóng vùng nhớ  delete p; // giải phóng vùng nhớ do p trỏ đến  delete[] r; // giải phóng mảng động 8 Cấp phát và giải phóng bộ nhớ động  Ví dụ:  // biến động  int *p = new int(5); // cấp phát ô nhớ  cout<< *p << endl;  delete p; // giải phóng ô nhớ  // mảng động  int *r = new int[7]; // cấp phát mảng động  for(int i = 0; i<7; i++)  {  r[i] = 3;  cout<<r[i]<<endl;  }  delete[ ] r; // giải phóng mảng động 9 Cấp phát và giải phóng bộ nhớ động  Chú ý: Khi giải phóng một vùng nhớ thì con trỏ trỏ đến vùng nhớ đó vẫn chứa địa chỉ của vùng nhớ, và như vậy việc truy nhập đến vùng nhớ đã giải phóng là không hợp lệ (về logic). => Khi giải phóng vùng nhớ, nên gán tất cả con trỏ trỏ đến vùng nhớ đó bằng NULL.  delete p; // giải phóng vùng nhớ do p trỏ đến  p = NULL; // p không chứa địa chỉ của vùng nhớ nào, // p không trỏ đến vùng nhớ nào  Không giải phóng một vùng nhớ đã cấp phát sẽ dẫn đến hiện tượng rò bộ nhớ (memory leak). 10 Cấp phát và giải phóng bộ nhớ động  Cho biết kết quả của đoạn chương trình sau:  int *p, *q;  p = new int(1);  q = new int(2);  cout<< *p <<"\t"<< *q <<endl;  *p = *q + 3;  cout<< *p <<"\t"<< *q <<endl;  p = q;  cout<< *p <<"\t"<< *q <<endl;  *p = 7;  cout<< *p <<"\t"<< *q <<endl;  p = new int;  delete p;  p = NULL;  q = NULL; [...]... p . tham chiếu và con trỏ 6. Mảng con trỏ. Con trỏ cấu trúc. Con trỏ void 7. Con trỏ làm đối số trong hàm 8. Review 9. Bài tập 3 Biến và con trỏ  Khai báo  int. 1 Lập trình C++ 1 2 Con trỏ 1. Biến và con trỏ 2. Cấp phát và giải phóng bộ nhớ động 3. Mô hình bộ nhớ chương trình 4. Quan hệ giữa mảng và con trỏ 5.

Ngày đăng: 24/01/2014, 19:20

HÌNH ẢNH LIÊN QUAN

3. Mô hình bộ nhớ chương trình - Tài liệu Ngôn ngữ lập trình - Con trỏ ppt
3. Mô hình bộ nhớ chương trình (Trang 2)
 Cho biết kết quả trên màn hình: - Tài liệu Ngôn ngữ lập trình - Con trỏ ppt
ho biết kết quả trên màn hình: (Trang 5)
Mô hình bộ nhớ chương trình - Tài liệu Ngôn ngữ lập trình - Con trỏ ppt
h ình bộ nhớ chương trình (Trang 12)
 Ví dụ lớp Hình tròn - Tài liệu Ngôn ngữ lập trình - Con trỏ ppt
d ụ lớp Hình tròn (Trang 19)
Fibonacci. In mảng ra màn hình và cuối cùng giải phóng mảng. - Tài liệu Ngôn ngữ lập trình - Con trỏ ppt
ibonacci. In mảng ra màn hình và cuối cùng giải phóng mảng (Trang 25)

TỪ KHÓA LIÊN QUAN