Bài giảng Tin học căn bản (Phần 3) - Chương 4: Con trỏ và mảng cung cấp cho người học các kiến thức: Tổng quan về con trỏ, các phép toán làm việc với con trỏ, khái niệm mảng, khai báo và sử dụng mảng, các thao tác cơ bản làm việc trên mảng,... Mời các bạn cùng tham khảo.
Chương 4: Con trỏ mảng Ngo Van Linh Bộ môn Hệ thống thông tin Viện Công nghệ thông tin Truyền thông Đại học Bách Khoa Hà Nội Nội dung chương 4.1 Con trỏ địa 4.2 Mảng 4.1.1 Tổng quan trỏ 4.1.2 Các phép toán làm việc với trỏ 4.2.1 Khái niệm mảng 4.2.2 Khai báo sử dụng mảng 4.2.3 Các thao tác làm việc mảng 4.3 Sử dụng trỏ làm việc với mảng Nội dung trình bày 4.1 Con trỏ địa 4.2 Mảng 4.1.1 Tổng quan trỏ 4.1.2 Các phép toán làm việc với trỏ 4.2.1 Khái niệm mảng 4.2.2 Khai báo sử dụng mảng 4.2.3 Các thao tác làm việc mảng 4.3 Sử dụng trỏ làm việc với mảng 4.1 Con trỏ địa 4.1.1.Tổng quan trỏ 4.1.2 Các phép toán làm việc với trỏ 4.1.1 Tổng quan trỏ a Địa giá trị biến Bộ nhớ dãy byte nhớ Các byte nhớ xác định cách qua địa Biến lưu nhớ Khi khai báo biến Chương trình dịch cấp phát cho biến số ô nhớ liên tiếp đủ để chứa nội dung biến Ví dụ biến số nguyên (int) cấp phát byte Địa biến địa byte số Địa giá trị biến (tiếp) Một biến ln có hai đặc tính: Địa biến Giá trị biến Ví dụ: int i, j; i = 3; j = i + 1; Biến Địa Giá trị i FFEC j FFEE b Khái niệm khai báo trỏ Con trỏ biến mà giá trị địa vùng nhớ Khai báo trỏ: p a Cú pháp khai báo trỏ sau: Kieu_du_lieu *ten_bien_con_tro; Ví dụ int i = 3; int *p; p = &i; Biến Địa Giá trị i FFEC p FFEE FFEC Một trỏ trỏ tới đối tượng kiểu Toán tử & * Toán tử &: Trả địa biến Toán tử *: Trả giá trị chứa vùng nhớ trỏ trỏ Cả hai tốn tử * & có độ ưu tiên cao tất toán tử số học ngoại trừ tốn tử đảo dấu Ví dụ: void main() { int i = 3; int *p; p = &i; printf("*p = %d \n",*p); getch(); } c Sử dụng biến trỏ: Một biến trỏ gán bởi: Địa biến khác: Giá trị trỏ khác (tốt kiểu): ten_bien_con_tro2 = ten_bien_con_tro1; Giá trị NULL (số 0): ten_bien_con_tro = &ten_bien; ten_bien_con_tro = 0;// NULL Gán giá trị cho biến trỏ: *ten_bien_con_tro = 10; 4.1.1 Tổng quan trỏ - ví dụ void main() { int i = 3, j = 6; int *p1, *p2; p1 = &i; p2 = &j; *p1 = *p2; } 10 4.3.2 Con trỏ - Phép toán lấy địa Phép tốn lấy địa nói chung khơng dùng thành phần mảng nhiều chiều (trừ trường hợp mảng hai chiều số nguyên) Xét chương trình sau với ý định nhập số liệu cho ma trận thực #include void main() { float a[10][20]; int i,j,n,m; printf("Nhap vao kich thuoc ma tran m,n="); scanf("%d%d",&m,&n); /*Chương trình chạy đây*/ for(i=0;i