MẢNG & CON TRỎ
MẢNG & CON TRỎ MẢNG & CON TRỎ NỘI DUNG CON TRỎ MẢNG 1 CHIỀU MẢNG 2 CHIỀU C 1. CON TRỎ Hình dung sâu hơn về biến trong bộ nhớ máy tính… ĐOÁN??? 1. CON TRỎ … 306 305 304 303 302 301 300 299 … 0 char b; int a; a=5; a++; 1 byte b a 56 1. CON TRỎ int a=5; int * p; p=&a; In p ? In &a ? In &p ? In *p ? 104 … 0 100 23 a=5 p=100 1. CON TRỎ 1. Cấp phát vùng nhớ khi chương trình đang chạy. 2. Trỏ tới 1 vùng nhớ Tại sao cần con trỏ? 1. CON TRỎ Cấp phát bộ nhớ cho con trỏ: • int* p = (int*) malloc (sizeof(int)); • int* p = (int*) calloc (1, sizeof(int)); • int* p = new int; Giải phóng vùng nhớ: • free p; • delete p; #include <stdlib.h> 1. CON TRỎ Sự khác biệt về cách sử dụng con trỏ của 2 chương trình? 1. CON TRỎ Bài tập: • Cho giá trị của c? • Viết lại biểu thức: y=2*x + 4*z bằng cách sử dụng con trỏ? 2. MẢNG 1 CHIỀU Cần lưu điểm môn MNLT của 5 sinh viên: Có thể khai báo gọn hơn mà vẫn đủ 5 biến ta cần? Dùng mảng 1 chiều: int d[5]; int d0; int d1; int d2; int d3: int d4; Hazzi…! [...]...2 MẢNG 1 CHIỀU Định nghĩa mảng 1 chiều: a0 int a • • Array element a1 int a2 a3 int a4 int int Truy xuất phần tử của mảng thông qua chỉ số Phần tử thứ n: a[n-1] Ví dụ: int a[5]; int temperatures[5]; Dùng mảng 1 chiều làm chi? 34 35 37 42 50 2 MẢNG 1 CHIỀU Bài tập mảng 1 chiều: • • • • • Nhập vào mảng số nguyên Nhập mảng có n phần tử Sắp xếp mảng tăng dần Xuất mảng đã sắp xếp ra mảng hình... hình Nửa sau giảm dần Kiểm tra xem mảng có đối xứng hay không 3 MẢNG 2 CHIỀU Định nghĩa mảng 2 chiều: cột 0 cột 1 cột 2 cột 3 Dòng 0 int int int Dòng 1 int int int int Dòng 2 int int int int int Ví dụ: int a[3][4]; //khai báo mảng 2 chiều • • Truy cập vào 1 phần tử của mảng: a[0][1], a[1][2], … Chỉ số dòng, cột bắt đầu từ 0 3 MẢNG 2 CHIỀU Bài tập: • • • • Nhập vào 1 ma trận các số nguyên Xuất . MẢNG & CON TRỎ MẢNG & CON TRỎ NỘI DUNG CON TRỎ MẢNG 1 CHIỀU MẢNG 2 CHIỀU C 1. CON TRỎ Hình dung sâu hơn về biến trong bộ nhớ máy tính… ĐOÁN??? 1. CON TRỎ … 306 305 304 303 302 301 300 299 … 0 char. p; #include <stdlib.h> 1. CON TRỎ Sự khác biệt về cách sử dụng con trỏ của 2 chương trình? 1. CON TRỎ Bài tập: • Cho giá trị của c? • Viết lại biểu thức: y=2*x + 4*z bằng cách sử dụng con trỏ? 2 byte b a 56 1. CON TRỎ int a=5; int * p; p=&a; In p ? In &a ? In &p ? In *p ? 104 … 0 100 23 a=5 p=100 1. CON TRỎ 1. Cấp phát vùng nhớ khi chương trình đang chạy. 2. Trỏ tới 1