LOGO
Chương IV
Con trỏ và số học địa chỉ
COMPANY LOGO
www.themegallery.com
Nội dung chínhNội dung chính
Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 2
4.1. Địa chỉ, phép toán &
4.2. Con trỏ
4.3. Các phép toán với con trỏ
4.4. Cấp phát và thu hồi bộ nhớ động
4.5. Con trỏ mảng, chuỗi
4.6. Mảng con trỏ
COMPANY LOGO
www.themegallery.com
4.1 Địa chỉ, phép toán &4.1 Địa chỉ, phép toán &
Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 3
Địa chỉ của một biến địa chỉ byte nhớ đầu tiên của biến đó.
C++ cung cấp một toán tử một ngôi & để lấy địa chỉ của các
biến (ngoại trừ biến mảng xâu tự). Nếu x một biến thì
&x địa chỉ của x.
Đối với biến kiểu mảng, thì tên mảng chính địa chỉ của
mảng, do đó không cần dùng đến toán tử &.
200 201 500 501 502 503 650 651 658
1 2 4 3 2 1 H E L L O \0
x y s
Biến x chiếm 2 byte nhớ, địa chỉ 200, biến y địa chỉ
500 chiếm 4 byte nhớ. Xâu s chiếm 9 byte nhớ tại địa chỉ
650. Các byte nhớ của một biến liền nhau.
COMPANY LOGO
www.themegallery.com
4.1 Địa chỉ, phép toán &4.1 Địa chỉ, phép toán &
Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 4
Ghi nhớ:
int x; // khai báo biến nguyên x
long y; // khai báo biến nguyên dài y
cout << &x << &y; // in địa chỉ các biến x, y
char s[9]; // khai báo mảng tự s
cout << s; // in địa chỉ mảng s
cout << &s[0]; // in địa chỉ mảng s (tức địa chỉ s[0])
cout << &s[2]; // in địa chỉ tự s[2]
Các phép toán liên quan đến địa chỉ được gọi số học địa chỉ.
Các thao tác được phép trên địa chỉ vẫn phải thông qua các biến
trung gian chứa địa chỉ, được gọi biến con trỏ.
COMPANY LOGO
www.themegallery.com
4.2 Con tr4.2 Con trỏ
Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 5
Con trỏ một biến chứa địa chỉ của biến khác. Nếu p con
trỏ chứa địa chỉ của biến x ta gọi p trỏ tới x x được trỏ bởi
p. Thông qua con trỏ ta thể làm việc được với nội dung của
những ô nhớ p trỏ đến.
Để con trỏ p trỏ tới x ta phải gán địa chỉ của x cho p.
Để làm việc với địa ch của các biến cần phải thông qua c
biến con trỏ trỏ đến biến đó.