Danh mục tài liệu

Bài giảng Tin học đại cương - Bài 4: Con trỏ và mảng

Số trang: 50      Loại file: ppt      Dung lượng: 1.75 MB      Lượt xem: 17      Lượt tải: 0    
Xem trước 5 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

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.
Nội dung trích xuất từ tài liệu:
Bài giảng Tin học đại cương - Bài 4: Con trỏ và mảng VIỆNCÔNGNGHỆTHÔNGTIN S CHOOLOF INFORMATIONCOMMUNICATIONTECHNOLOGY TIN HỌC ĐẠI CƯƠNGPHẦ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 1 BÀI 4: CON TRỎ VÀ MẢNG4.1. Con trỏ và địa chỉ 4.1.1. Tổng quan về con trỏ 4.1.2. Các phép toán làm việc với con trỏ4.2. Mảng 4.2.1. Khái niệm mảng 4.2.2. Khai báo và sử dụng mảng 4.2.3. Các thao tác cơ bản làm việc trên mảng4.3. Sử dụng con trỏ làm việc với mảng 2 4.1.1. Tổng quan về con trỏa. Địa chỉ và giá trị của một biến Bộ nhớ như một dãy các byte nhớ. Các byte nhớ được xác định một cách duy nhất qua một địa chỉ. Biến được lưu trong bộ nhớ. Khi khai báo một biến Chương trình dịch sẽ cấp phát cho biến đó một số ô nhớ liên tiếp đủ để chứa nội dung của biến. Ví dụ một biến số nguyên (int) được cấp phát 2 byte. Địa chỉ của một biến chính là địa chỉ của byte đầu tiên trong số đó. 3 4.1.1. Tổng quan về con trỏa. Địa chỉ và giá trị của một biến (tiếp) Một biến luôn có hai đặc tính: Địa chỉ của biến. Giá trị của biến. Ví dụ: int i, j; Biến Địa chỉ Giá trị i = 3; j = i + 1; i FFEC 3 j FFEE 4 4 4.1.1. Tổng quan về con trỏb. Khái niệm và khai báo con trỏ Con trỏ là một biến mà giá trị của nó là địa chỉ của một vùng nhớ. ... p ... a ... Khai báo con trỏ: Cú pháp khai báo một con trỏ như sau:Kieu_du_lieu *ten_bien_con_tro; Ví dụ Biến Địachỉ Giátrị int i = 3; i FFEC 3 int *p; p FFEE FFEC p = &i; Một con trỏ chỉ có thể trỏ tới một đối tượng cùng kiểu. 5 4.1.1. Tổng quan về con trỏToán tử & và * Toán tử &: Trả về địa chỉ của biến. Toán tử *: Trả về giá trị chứa trong vùng nhớ được trỏ bởi giá trị của biến con trỏ. Cả hai toán tử * và & có độ ưu tiên cao hơn tất cả các toán tử số học ngoại trừ toán tử đảo dấu. Ví dụ:void main(){ int i = 3; int *p; p = &i; printf(*p = %d ,*p); getch();} 6 4.1.1. Tổng quan về con trỏc. Sử dụng biến con trỏ: Một biến con trỏ có thể được gán bởi: Địa chỉ của một biến khác:  ten_bien_con_tro = &ten_bien; Giá trị của một con trỏ khác (tốt nhất là cùng 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 con trỏ: *ten_bien_con_tro = 10; 7 4.1.1. Tổng quan về con trỏVí dụ 1:main(){ int i = 3, j = 6; int *p1, *p2; p1 = &i; p2 = &j; *p1 = *p2;} 8 4.1.1. Tổng quan về con trỏVí dụ 2:main(){ int i = 3, j = 6; int *p1, *p2; p1 = &i; p2 = &j; p1 = p2;} 9 4.1.1. Tổng quan về con 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ị là địa chỉ của một biến thuộc bất kỳ kiểu dữ liệu nào. Ví dụ: void *p, *q; int x = 21; float y = 34.34; p = &x; q = &y; 104.1.2. Các phép toán làm việc với con trỏCộng/trừ con trỏ với một số nguyên (int, long)  Kếtquả là một con trỏ cùng kiểu ptr--; //ptr trỏ đến vị trí của phần tử đứng trước nó.Trừ hai con trỏ cho nhau Kết quả là một số nguyên Kết quả này nói lên khoảng cách (số phần tử thuộc kiểu dữ liệu của con trỏ) ở giữa hai con trỏ.Các phép toán: Cộng, nhân, chia, lấy số dư trên con trỏlà không hợp lệ.Ví dụ: (p2 trỏ đến số nguyên nằm ngay sau x trong bộ nhớ)int x, *p1, *p2;p1= &x;p2= p1+1; 11 BÀI 4: CON TRỎ VÀ MẢNG4.1. Con trỏ và địa chỉ 4.1.1. Tổng quan về con trỏ 4.1.2. Các phép toán làm việc với con trỏ4.2. Mảng 4.2.1. Khái niệm mảng 4.2.2. Khai báo và sử dụng mảng 4.2.3. Các thao tác cơ bản làm việc trên mảng4.3. Sử dụng con trỏ làm việc với mảng 12 4.2.1. Khái niệm mảngMảng là một tập hợp hữu hạn c[0] 45 ...