intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài 8 - Con trỏ (Pointer)

Chia sẻ: Nguyễn Thị Phương Phương | Ngày: | Loại File: PDF | Số trang:17

80
lượt xem
11
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Con trỏ Một con trỏ hay một biến con trỏ là: ¨ một biến chiếu đến một ô nhớ. ¨ nó lưu vị trí/địa chỉ của ô nhớ đó. n Hai ứng dụng chính: ¨ Truy nhập gián tiếp ¨ Bộ nhớ động n Vấn đề kỹ thuật: Nếu P là một biến con.

Chủ đề:
Lưu

Nội dung Text: Bài 8 - Con trỏ (Pointer)

  1. Bài 8 CON TR (POINTER)
  2. N i Dung 1. Khái ni m con tr 2.Các toán t con tr 3. Phép tính s h c trên con tr 4.Con tr và m ng 5.Con tr và chu i 6.M ng con tr 7.Null pointer 8.Tr gián ti p
  3. 1. Khái ni m con tr Con tr là m t bi n ch a m t a ch b nh . Thông thư ng a ch này là v trí c a m t bi n khác. N u X ch a a ch c a Y thì ta nói X tr n Y Bi n con tr ph i ư c khai báo như sau: ki u *tên bi n Ví d : khai báo m t bi n p là con tr tr n s nguyên int *p
  4. 2.Các toán t con tr Có hai toán t c bi t ư c dùng v i con tr : * và &. Toán t & tr v a ch b nh c a toán h ng. Ví d : ptr = &x ;// &x có c là a ch c a x Toán t * tr v giá tr c a bi n ư c t t i a ch ư c ch ra trong toán h ng. Ví d : giatri = *ptr ;//*ptr có th c là n i dung t i a ch ptr
  5. #include using namespace std; int main() { int x; int *ptr; int giatri; x = 3200; ptr = &x; giatri = *ptr; cout
  6. a ch b nh 0 1 2 100 101 ptr x giatri B nh 100 3200 ptr = &x ; 0 1 2 100 101 ptr x giatri 100 3200 3200 giatri = *ptr
  7. Có th gán giá tr vào v trí ư c ch nh b i m t con tr ví d : *p = 121 ;// t i v trí ư c ch b i p, gán giá tr 121. Có th tăng gi m giá tr n i dung t i v trí ư c ch nh b i p b ng toán t ++, hay -- ví d : (*p)++ (*p)--
  8. 3. Phép tính s h c trên con tr Có b n phép toán s h c ư c th c hi n i v i con tr là ++, --, +, - Ví d con tr s nguyên pi có giá tr 2000 (nó ch a a ch 2000). Gi s s nguyên 32 bit thì sau ki th c hi n câu l nh pi++; n i dung c a pi là 2004 pi = pi + 8; //làm cho pi tr n ph n t th 8
  9. Vi t chương trình t o m t m ng a g m 10 ph n t và in ra a ch c a các ph n t này #include using namespace std; int main() { int *p, i, a[10]; p = a; for (i = 0; i
  10. 4.Con tr và m ng Trong C++, m ng và con tr có quan h g n ví d : char str[80]; char *p; p = str; Con tr ư c gán a ch c a ph n t m ng Vi t tên m ng không có index tương ương v i con tr ch n ph n t th 1 (str[0]) Mu n truy xu t n ph n t th 4 có th dùng *(p+3)
  11. Vi t chương trình nh p vào m t câu r i in m i t trên m t hàng, dùng con tr #include #include while (*p) { using namespace std; q = token; int main() while (*p !=' ' && *p) { *q = *p; { q++; p++; char str[80], token[80], *p, *q; } cout
  12. V i con tr có th ư c truy xu t theo ch s như m ng, ví d : char *p; char str[20]; p = str; p[4] = 'h'; Tuy nhiên, m ng và con tr không th dùng thay th cho nhau.
  13. 5.Con tr và chu i Khi b t g p m t chu i ký t , trình biên d ch s lưu trong m t b ng chu i và phát sinh ra m t con tr ch n chu i này. ví d #include using namespace std; int main() { char *s; s = "Dùng con tr là hi u qu .\n"; cout
  14. 6.M ng con tr Các con tr cũng có th hình thành m ng. Ví d int *pa[10]; khai báo pa như là m t m ng ch a 10 con tr ki u integer. M i ph n t gi m t con tr ch n m t giá tr integer. gán m t a ch vào ph n t m ng có th dùng toán t &, ví d pa[2] = &var; Dùng m ng pa gán giá tr c a var cho bi n x pa[2] = &var x = *pa[2]
  15. 7.Null pointer N u con tr ch a giá tr 0 (null), ư c xem như không ch n b t kỳ âu. T t c các con tr không ư c dùng ư c gán giá tr null và tránh dùng con tr null thì tránh ư c các s c trong chương trình B t c ki u con tr nào u có th kh i ng b ng giá tr null ví d : float *p = 0;
  16. 8.Tr gián ti p M t con tr ch n m t con tr khác là hình th c tr gián ti p. pointer Bi n a ch Giá tr Tr tr c ti p pointer pointer Bi n a ch a ch Giá tr Tr gián ti p
  17. Khai báo tr gián ti p, ví d int **balance; balance không ph i là con tr ch n s integer mà là ch n m t con tr ki u integer. #include using namespace std; int main() { int x, *p, **q; x = 10; p = &x; q = &p; cout
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
10=>1