Bài giảng Tin học đại cương - Bài 4: Con trỏ và mảng trình bày con trỏ và địa chỉ; mảng; sử dụng con trỏ làm việc với mảng. Để nắm chắc kiến thức mời các bạn cùng tham khảo bài giảng.
VIỆN CÔNG NGHỆ THÔNG TIN S CHOOL OF INFORMATION COMMUNICATION TECHNOLOGY TIN HỌC ĐẠI CƯƠNG PHẦN 2: LẬP TRÌNH BẰNG NGƠN NGỮ C BÀI 4: CON TRỎ VÀ MẢNG Ts Nguyễn Thanh Hùng BÀI 4: CON TRỎ VÀ 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.2 Mảng 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.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ố 4.1.1 Tổng quan trỏ a Đị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, j; 3; i + 1; Biến Địa Giá trị i FFEC j FFEE 4 4.1.1 Tổng quan trỏ b Khái niệm khai báo trỏ Con trỏ biến mà giá trị địa vùng nhớ p a Khai báo trỏ: Cú pháp khai báo trỏ sau: Kieu_du_lieu *ten_bien_con_tro; Ví dụ Biến Địa chỉ int int p = i = 3; *p; &i; Giá trị i FFEC p FFEE FFEC Một trỏ trỏ tới đối tượng kiểu 4.1.1 Tổng quan trỏ Toán tử & * Toán tử &: Trả địa biến Toán tử *: Trả giá trị chứa vùng nhớ trỏ giá trị biến 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(); } 4.1.1 Tổng quan trỏ c Sử dụng biến trỏ: Một biến trỏ gán bởi: Địa biến khác: ten_bien_con_tro = &ten_bien; 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 = 0; Gán giá trị cho biến trỏ: *ten_bien_con_tro = 10; 4.1.1 Tổng quan trỏ Ví dụ 1: main() { int i = 3, j = 6; int *p1, *p2; p1 = &i; p2 = &j; *p1 = *p2; } 4.1.1 Tổng quan trỏ Ví dụ 2: main() { int i = 3, j = 6; int *p1, *p2; p1 = &i; p2 = &j; p1 = p2; } 4.1.1 Tổng quan trỏ d Con trỏ void void *ten_bien_con_tro; Con trỏ đặc biệt, khơng có kiểu, Có thể nhận giá trị địa biến thuộc kiểu liệu Ví dụ: void *p, *q; int x = 21; float y = 34.34; p = &x; q = &y; 10 b Tìm kiếm mảng (3) Bài Nhập vào phần tử mảng nguyên có số lượng phần tử tối đa 100 Nhập số nguyên giá trị đưa phần tử số mảng có giá trị nhỏ số nguyên vừa nhập 36 #include #define KT 100 void main() { int n, a[KT], i, x; printf("\nNhap vao so luong phan tu cua mang: "); scanf("%d", &n); printf("Nhap vao cac phan tu cua mang : "); for (i=0; i