1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

pointer

17 139 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 103,08 KB

Nội dung

Bài 8 CON TRỎ (POINTER) 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 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 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 #include <iostream> using namespace std; int main() { int x; int *ptr; int giatri; x = 3200; ptr = &x; giatri = *ptr; cout << "Gia tri x la: " << giatri<< '\n'; return 0; } ptr 100 x 3200 giatri 0 1 2 100 101 ptr 100 x 3200 giatri 3200 0 1 2 100 101 ptr = &x ; Địa chỉ bộ nhớ Bộ nhớ giatri = *ptr  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) 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 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 <iostream.h> using namespace std; int main() { int *p, i, a[10]; p = a; for (i = 0; i<10; i++) cout<< "Dia chi cua a["<<i<<"] la:"<< p+i<< '\n'; return 0; } 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) [...]... 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; 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 . con trỏ khác là hình thức trỏ gián tiếp. Địa chỉ Giá trị pointer Biến Trỏ trực tiếp Địa chỉ Giá trị pointer Biến Trỏ gián tiếp Địa chỉ pointer  Khai báo trỏ gián tiếp, ví dụ int **balance; balance. Bài 8 CON TRỎ (POINTER) 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. = &var;  Dùng mảng pa để gán giá trị của var cho biến x pa[2] = &var x = *pa[2] 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

Ngày đăng: 29/05/2014, 21:15

Xem thêm

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN