intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Phương pháp lập trình: Chương 7

Chia sẻ: Trang đặng | Ngày: | Loại File: PPT | Số trang:16

72
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Phương pháp lập trình: Chương 7 cung cấp cho các bạn những kiến thức về kiểu con trỏ với những nội dung chính như định nghĩa, khai báo; các thao tác trên biến con trỏ, con trỏ và mảng, thông số hình thức kiểu con trỏ, cấp phát động.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Phương pháp lập trình: Chương 7

  1. CHƯƠNG 7 KIỂU CON TRỎ ( POINTER )
  2. Nội dung: I. Định nghĩa -Khai báo. II. Các thao tác trên biến con trỏ. III. Con trỏ và mảng. IV. Thông số hình thức kiểu con trỏ. V. Cấp phát động.
  3. I. ĐỊNH NGHĨA – KHAI BÁO - ĐN: Biến kiểu con trỏ là biến chứa địa chỉ của một biến khác. - Các loại biến con trỏ: Nếu biến con trỏ chứa: địa biến nguyên ta gọi là con trỏ nguyên, địa chỉ biến thực gọi là con trỏ thực, địa chỉ biến ký tự gọi là con trỏ ký tự... - Cú pháp khai báo: tên_kiểu* tên_biến; trong đó: tên_kiểu là những kiểu đã được định nghĩa ý nghĩa: khai báo biến tên_biến là biến con trỏ tên_kiểu, dùng để chứa địa chỉ của biến có kiểu là tên_kiểu.
  4. I. ĐỊNH NGHĨA – KHAI BÁO Ví dụ: int* pa; float* pf; char* s; int* a[100]; int (*a)[100];
  5. II. CÁC THAO TÁC: 1. Lấy địa chỉ của 1 biến: (address operator) Sử dụng tóan tử & Ví dụ: int a=10; int*pa; pa=&a;
  6. II. CÁC THAO TÁC: 2.Lấy dữ liệu tại địa chỉ:(indirection operator) Sử dụng tóan tử * Ví dụ: int a=10; int*pa; pa=&a; cout
  7. II. CÁC THAO TÁC: 3.Cộng trừ con trỏ với số nguyên: Khi cộng với 1, địa chỉ được tăng lên một lượng bằng kích thước kiểu con trỏ. Ví dụ 1: int a=10; int*pa=&a; cout
  8. II. CÁC THAO TÁC: Ví dụ 2: int a[]={5,10,15,20,25}; int*pa=&a[0]; cout
  9. II. CÁC THAO TÁC: 4.So sánh 2 con trỏ: Giống so sánh 2 số nguyên. Thường dùng khi 2 con trỏ cùng trỏ đến phần tử của 1 mảng.
  10. III. CON TRỎ VÀ MẢNG: 1. Truy xuất phần tử mảng thông qua biến con trỏ: Ví dụ: int a[4]; int* p=&a[0]; a[0] tương đương với *(p+0) a[1] tương đương với *(p+1) a[2] tương đương với *(p+2) a[3] tương đương với *(p+3)
  11. III. CON TRỎ VÀ MẢNG: 2. Tên biến mảng là hằng con trỏ: có trị bằng địa chỉ của phần tử đầu. Ví dụ: int a[4]; int i=2; khi đó a[i] tương đương *(a+i)
  12. III. CON TRỎ VÀ MẢNG: 3. Tên thông số hình thức mảng tương đương biến con trỏ đối với hàm. Ví dụ: void nhap(int a[], int &n); tương đương với void nhap(int *a, int &n);
  13. III. THAY ĐỔI THÔNG SỐ THỰC BẰNG THÔNG SỐ HÌNH THỨC CON TRỎ: Ví dụ: void swap(int*pa, int* pb) { int tam; tam=*pa; *pa=*pb; *pb=tam; }
  14. V. CẤP PHÁT ĐỘNG: 1. Khái niệm: stack heap 2. Toán tử new Cú pháp: biến_con_trỏ=new tên_kiểu[N]; Ý nghĩa: Cấp phát vùng nhớ đủ để lưu N biến kiểu tên_kiểu. Mặc định N=1 (khi không có N). 3. Toán tử delete Cú pháp: delete biến_con_trỏ; delete [] biến_con_trỏ; Ý nghĩa: Thu hồi vùng nhớ đã cấp phát cho biến_con_trỏ bằng new.
  15. V. CẤP PHÁT ĐỘNG: Ví dụ: int * a; a=new int; int *p; p=new int[100]; delete a; delete [] p;
  16. Ví dụ: Sử dụng mảng cấp phát động void nhap(int* &a, int&n) { coutn; a=new int[n]; for(int i=0; i>a[i]; //hoặc cin>>*(a+i); } void xuat(int* a, int n) { for(int i=0; i
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
3=>0