
Bài giảng Nhập môn lập trình: Bài 6 - Trần Duy Thanh
lượt xem 4
download

Bài 6 trình bày những nội dung kiến thức liên quan đến xử lý chuỗi và con trỏ như: Khái niệm và cấu trúc về chuỗi, các hàm nhập xuất chuỗi, một số hàm cơ bản về chuỗi, mảng và chuỗi. Mời các bạn cùng tham khảo để nắm bắt các nội dung chi tiết.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Nhập môn lập trình: Bài 6 - Trần Duy Thanh
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN Bài 6: Xử Lý Chuỗi & Con trỏ Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 1. Khái niệm 2. Các thao tác trên con trỏ 3. Cấp phát bộ nhớ 4. Con trỏ và mảng Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động 2
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN v ĐỊA CHỈ CỦA BIẾN Ø Thông tin của một biến bao gồm: *Tên biến *Kiểu dữ liệu của biến *Giá trị của biến Ø Mỗi biến sẽ được lưu trữ tại một vị trí xác định trong ô nhớ, nếu kích thước của biến có nhiều byte thì máy tính sẽ cấp phát một dãy các byte liên tiếp nhau, địa chỉ của biến sẽ lưu byte đầu tiên trong dãy các byte này Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN v ĐỊA CHỈ CỦA BIẾN * Ví dụ khai báo: float x; int a; Địa chỉ biến x Địa chỉ biến a Byte 1 Byte 100 Các ô Các ô Byte 2 nhớ Byte 101 nhớ của của Byte 3 Byte 102 biến biến x Byte 4 a Byte 103 Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN v ĐỊA CHỈ CỦA BIẾN v Địa chỉ của biến luôn luôn là một số nguyên (hệ thập lục phân) dù biến đó chứa giá trị là số nguyên, số thực hay ký tự, … v Cách lấy địa chỉ của biến & tênbiến v Ví dụ: void main() { int x=7; float y=10.5; cout
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 1. Khái niệm • Một con trỏ là 1 biến chứa một địa chỉ bộ nhớ. Địa chỉ này là vị trí của một đối tượng khác trong bộ nhớ. • Nếu một biến chứa địa chỉ của một biến khác, biến thứ nhất được gọi là trỏ đến biến thứ hai. Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 1. Khái niệm count 7 Giá trị của biến count = 7 countPtr count Con trỏ trỏ đến vùng nhớ 7 của biến count Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 1. Khái niệm Địa chỉ Biến trong bộ nhớ bộ nhớ Một biến được cấp phát ô nhớ tại địa chỉ 1000 có giá trị là địa chỉ (1003) của 1 biến khác. Biến thứ nhất được gọi là con trỏ. Bộ nhớ Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 2. Khai báo biến con trỏ • Cú pháp: type *pointerVariable; type: xác định kiểu dữ liệu của biến mà con trỏ trỏ đến. Ví dụ: int *a; a Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 3. Toán tử con trỏ (pointer operators) • Toán tử & là toán tử 1 ngôi, trả về địa chỉ bộ nhớ của toán hạng của nó. – Toán tử & dùng để gán địa chỉ của biến cho biến con trỏ Cú pháp: =& Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 3. Toán tử con trỏ (pointer operators) • Ví dụ: a 25 x int a=25, x; int *y; y y x=a;; y=&a; y=a;//sai Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 3. Toán tử con trỏ (pointer operators) • Toán tử * : là toán tử một ngôi trả về giá trị tại địa chỉ con trỏ trỏ đến. Cú pháp: * Ví dụ: a=*p ; a=p;//sai Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 4. Các thao tác trên con trỏ • Lệnh gán con trỏ Có thể dùng phép gán để gán giá trị của một con trỏ cho một con trỏ khác có cùng kiểu Ví dụ: int x=10; int *p1, *p2; p1 = &x; p2 = p1; Sau khi đọan lệnh trên được thực hiện, cả hai p1 và p2 cùng trỏ đến biến x. Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 4. Các thao tác trên con trỏ p1 p2 X=10 Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 4. Các thao tác trên con trỏ • Phép toán số học trên con trỏ – Chỉ có 2 phép toán sử dụng trên con trỏ là phép cộng và trừ – Khi cộng (+) hoặc trừ () 1 con trỏ với 1 số nguyên N; kết quả trả về là 1 con trỏ. Con trỏ này chỉ đến vùng nhớ cách vùng nhớ của con trỏ hiện tại một số nguyên lần kích thước của kiểu dữ liệu của nó. Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 4. Các thao tác trên con trỏ Ví dụ : char *a; short *b; long *c; Các con trỏ a, b, c lần lượt trỏ tới ô nhớ 1000, 2000 và 3000. Cộng các con trỏ với một số nguyên: a = a + 1;//con trỏ a dời đi 1 byte b = b + 1;//con trỏ b dời đi 2 byte c = c + 1; //con trỏ c dời đi 4 byte Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 4. Các thao tác trên con trỏ Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 4. Các thao tác trên con trỏ • Lưu ý: cả hai toán tử tăng (++) và giảm () đều có quyền ưu tiên lớn hơn toán tử * Ví dụ: *p++; Lệnh *p++ tương đương với *(p++) : thực hiện là tăng p (địa chỉ ô nhớ mà nó trỏ tới chứ không phải là giá trị trỏ tới). Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 4. Các thao tác trên con trỏ Ví dụ: *p++ = *q++; • Cả hai toán tử tăng (++) đều được thực hiện sau khi giá trị của *q được gán cho *p và sau đó cả q và p đều tăng lên 1. Lệnh này tương đương với: *p = *q; p++; q++; Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động
- TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN 4. Các thao tác trên con trỏ #include #include void main () { int a = 20, b = 15, *pa, *pb, temp; pa = &a; // con trỏ pa chứa địa chỉ của a pb = &b; // con trỏ pb chứa địa chỉ của b temp = *pa; *pa = *pb; *pb = temp; cout

CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Nhập môn lập trình - Chương 1: Các khái niệm cơ bản về lập trình
20 p |
126 |
8
-
Bài giảng Nhập môn lập trình: Chương 2 - Trần Minh Thái
86 p |
122 |
8
-
Bài giảng Nhập môn lập trình: Chương 1 - Trần Minh Thái
58 p |
117 |
7
-
Bài giảng Nhập môn lập trình: Bài 1 - Trần Duy Thanh
70 p |
202 |
5
-
Bài giảng Nhập môn lập trình - Bài 2: Giới thiệu ngôn ngữ lập trình C
18 p |
122 |
5
-
Bài giảng Nhập môn lập trình: Bài 2 - TS. Ngô Hữu Dũng
53 p |
77 |
3
-
Bài giảng Nhập môn lập trình: Bài 1 - TS. Ngô Hữu Dũng
47 p |
93 |
3
-
Bài giảng Nhập môn lập trình: Tổng quan về lập trình - Nguyễn Đình Hưng
21 p |
91 |
3
-
Bài giảng Nhập môn lập trình: Chương giới thiệu - ThS. Nguyễn Đông Hà
9 p |
89 |
3
-
Bài giảng Nhập môn lập trình: Bài 3 - Trần Duy Thanh
16 p |
109 |
3
-
Bài giảng Nhập môn lập trình: Giới thiệu về các cấu trúc điều khiển - Trường ĐH Khoa học tự nhiên TP. HCM
58 p |
18 |
1
-
Bài giảng Nhập môn lập trình: Sử dụng những kiểu dữ liệu cơ sở trong chương trình - Trường ĐH Khoa học tự nhiên TP. HCM
53 p |
16 |
1
-
Bài giảng Nhập môn lập trình: Giới thiệu tổng quan về lập trình - Trường ĐH Khoa học tự nhiên TP. HCM
31 p |
12 |
0
-
Bài giảng Nhập môn lập trình: Hàm và kỹ thuật tổ chức chương trình - Trường ĐH Khoa học tự nhiên TP. HCM
86 p |
13 |
0
-
Bài giảng Nhập môn lập trình: Giới thiệu về thuật toán - Trường ĐH Khoa học tự nhiên TP. HCM
29 p |
14 |
0
-
Bài giảng Nhập môn lập trình: Kỹ thuật cài đặt các thuật toán cơ bản - Trường ĐH Khoa học tự nhiên TP. HCM
37 p |
14 |
0
-
Bài giảng Nhập môn lập trình: Dữ liệu mạng và dữ liệu có cấu trúc - Trường ĐH Khoa học tự nhiên TP. HCM
37 p |
11 |
0
-
Bài giảng Nhập môn lập trình: Lập trình với tập tin văn bản thô - Trường ĐH Khoa học tự nhiên TP. HCM
38 p |
19 |
0


Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn
