Danh mục

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

Số trang: 16      Loại file: ppt      Dung lượng: 414.50 KB      Lượt xem: 20      Lượt tải: 0    
tailieu_vip

Hỗ trợ phí lưu trữ khi tải xuống: 11,000 VND Tải xuống file đầy đủ (16 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 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.
Nội dung trích xuất từ tài liệu:
Bài giảng Phương pháp lập trình: Chương 7CHƯƠNG 7 KIỂU CON TRỎ ( POINTER )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.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.I. ĐỊNH NGHĨA – KHAI BÁOVí dụ: int* pa; float* pf; char* s; int* a[100]; int (*a)[100];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;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; coutII. 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; coutII. CÁC THAO TÁC:Ví dụ 2: int a[]={5,10,15,20,25}; int*pa=&a[0]; coutII. 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.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)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)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); 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; }V. CẤP PHÁT ĐỘNG:1. Khái niệm: stack heap2. 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.V. CẤP PHÁT ĐỘNG:Ví dụ: int * a; a=new int; int *p; p=new int[100]; delete a; delete [] p;Ví dụ: Sử dụng mảng cấp phát độngvoid 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

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