Professional Documents
Culture Documents
Chuong 6_Con tro
Chuong 6_Con tro
Chuong 6_Con tro
www.hcmute.edu.vn.com
LOGO
2 Con trỏ
www.hcmute.edu.vn.com
LOGO
Biến:
Giá trị của biến
Địa chỉ của biến
www.hcmute.edu.vn.com
LOGO
Toán tử giá trị: * lấy giá trị tại địa chỉ chứa biến
www.hcmute.edu.vn.com
LOGO
Ví dụ:
int a = 10;
printf("Gia tri cua a: %d", a);
printf("\nDia chi cua a: %p", &a);
_getch();
www.hcmute.edu.vn.com
LOGO
Ví dụ:
int a = 10;
printf("Gia tri cua a: %d", a);
printf("\nDia chi cua a: %p", &a);
printf("\nGia tri (toan tu *) cua a: %d", *&a);
_getch();
www.hcmute.edu.vn.com
LOGO
2 Con trỏ
Là một biến
Giá trị của nó là địa chỉ vùng nhớ
www.hcmute.edu.vn.com
LOGO
2 Con trỏ
Khai báo biến con trỏ:
Cú pháp 1:
tên kiểu dữ liệu* tên con trỏ;
Ví dụ:
int* p1; // Khai báo biến p1 kiểu int*
www.hcmute.edu.vn.com
LOGO
2 Con trỏ
Khai báo biến con trỏ:
Cú pháp 2:
tên kiểu dữ liệu *tên con trỏ;
Ví dụ:
int *p2; // Khai báo con trỏ p2 kiểu int
www.hcmute.edu.vn.com
LOGO
2 Con trỏ
www.hcmute.edu.vn.com
LOGO
2 Con trỏ
Sử dụng biến con trỏ:
Bước 1: gán địa chỉ của vùng nhớ cho con trỏ
www.hcmute.edu.vn.com
LOGO
2 Con trỏ
Ví dụ: p = a;
int a = 10; p = &a;
int *p; *p = *&a;
*a = *p;
*a = p;
*p = 10;
*p += 1;
www.hcmute.edu.vn.com
LOGO
2 Con trỏ
Sử dụng biến con trỏ:
Bước 2: truy xuất tới vùng nhớ con trỏ đang trỏ tới
www.hcmute.edu.vn.com
LOGO
2 Con trỏ
int *p;
char *c;
double *p;
float *p;
www.hcmute.edu.vn.com
LOGO
Ví dụ:
a[2];
*(a + 2);
www.hcmute.edu.vn.com
LOGO
Ví dụ:
int a[5]; //Khai báo mảng 1 chiều
int *p; // Khai báo con trỏ p kiểu số nguyên
p = a; // trỏ con trỏ p tới vùng nhớ của mảng a
*p = 8; // Tương đương a[0] = 8
*(p+1) = 7; // Tương đương a[1] = 7
www.hcmute.edu.vn.com
LOGO
www.hcmute.edu.vn.com
LOGO
Ví dụ:
int *a;
a = (int *)malloc(4); //xin cấp cho con trỏ a
vùng nhớ 4 byte
www.hcmute.edu.vn.com
LOGO
www.hcmute.edu.vn.com
LOGO
www.hcmute.edu.vn.com