Bài giảng Nhập môn lập trình - Bài 6: Xử lý chuỗi & con trỏ (Phần 2)

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  
2
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  
❖ĐỊ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  
❖ĐỊA CHỈ CỦA BIẾN  
* Ví dụ khai báo:  
float x;  
int a;  
Địa chỉ biến a  
Địa chỉ biến x  
Byte 100  
Byte 1  
Byte 2  
Byte 3  
Byte 4  
Các ô  
nhớ  
của  
Các ô  
nhớ  
của  
Byte 101  
Byte 102  
Byte 103  
biến a  
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  
❖ĐỊA CHỈ CỦA BIẾN  
❖Đị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ự, …  
❖Cách lấy địa chỉ của biến  
& tênbiến  
❖Ví dụ:  
void main()  
{
int x=7;  
float y=10.5;  
cout<<"Dia chi cua bien x = "<<&x<<endl;  
cout<<"Dia chi cua bien y = "<<&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  
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  
Giá trị của biến count = 7  
7
countPtr  
count  
Con trỏ trỏ đến vùng nhớ  
của biến count  
7
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ỉ  
bộ nhớ  
Biến trong  
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:  
<Tên biến con trỏ>=&<Tên biế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  
3. Toán tử con trỏ (pointer operators)  
• Ví dụ:  
a
y
x
25  
int a=25, x;  
int *y;  
x=a;;  
y
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:  
*<Tên biến con trỏ>  
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ỏ  
p2  
p1  
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 <iostream.h>  
#include<conio.h>  
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 << "a = " << a << endl;  
cout << “b = ” << b;  
}
Trung Tâm Tin Học – Ngành Mạng và Thiết Bị Di Động  
Tải về để xem bản đầy đủ
pptx 48 trang baolam 21380 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Nhập môn lập trình - Bài 6: Xử lý chuỗi & con trỏ (Phần 2)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pptxbai_giang_nhap_mon_lap_trinh_bai_6_xu_ly_chuoi_con_tro_phan.pptx