-
Là một
biến chứa địa chỉ
của biến khác
-
Con trỏ
kiểu nào chỉ trỏ đến biến kiểu đó
-
Khai báo:
<Kiểu dữ liệu> *<tên con trỏ>;
Vd:
int *p; // p là con trỏ trỏ đến
các biên số nguyên
float *p1;
-
Toán tử *
và &
o
Toán tử *:
dùng để lấy giá trị tại địa chỉ đứng sau nó
o
Toán tử
&: dùng để lấy địa chỉ của biến
Vd:
int x=4;
int *p;
// p trỏ vào x, nghĩa là p chứa địa
chỉ của biến x
P=&x;
int y;
y=*p; //y=4
-
Con trỏ mảng
VD:
int a[10]; // a: địa chỉ của mảng a (a chứa địa chỉ của phần tử a[0])
int
*p;
P=a; //
p trỏ vào phần tử a[0] => a[i] ó *(p+i)
-
Con trỏ cấu trúc
VD:
struct
HS{
char ht[30],lop[5],dc[50];
float dT,dL,dH,dTong;
};
HS
a[10],*p; // p: con trỏ cấu trúc
ð Truy cập vào các trường trong cấu trúc ???
p=a; //
a[i].ht ó *(p+i).ht ó (p+i)->ht
p->lop
p->dT
Bài tập
1. Viết chương trình:
a.
Nhập
vào 1 dãy số nguyên có không quá 20 số
b.
In dãy
vừa nhập
c.
Tìm
max
d.
Tính
tổng
e.
Sắp
xếp
(dùng con trỏ mảng)
2 2. Viết
chương trình:
a.
Nhập
thông tin của n học sinh (n<20) gồm các thông tin:
- Họ tên
- Địa
chỉ
- Tuổi
- Lớp
- Điểm
toán, điểm lý, điểm hóa
b.
In
thông tin của n học sinh
c.
Tính
điểm tổng
d.
Đếm số
học sinh đỗ đại hoc (điểm chuẩn=13)
e.
Tim học
sinh có điểm cao nhât.