Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
646,49 KB
Nội dung
CHƯƠNG 5CHƯƠNG 5 CON TRỎCON TRỎ (Pointers)(Pointers) (Pointers)(Pointers) 1. Giớithiệu1. Giớithiệu 1. Giới thiệu1. Giới thiệu y Mộtcontrỏ là 1biếnchứamột địachỉ bộ nhớ. Địachỉ này là vị trí củamột đốitượn g khác trong bộ nhớ. y Nếumộtbiếnchứa địachỉ củamộtbiếnkhác, biếnthứ nhất đượcgọilàtrỏđếnbiếnthứ hai. 1. Giớithiệu1. Giớithiệu 1. Giới thiệu1. Giới thiệu Đ ị ach ỉ Biếntrong ị bộ nhớ bộ nhớ Mộtbiến đượccấp phát ô nhớ tại địachỉ 1000 có giá trị là địa chỉ ( 1003 ) giá trị là địa chỉ ( 1003 ) của1biến khác. Biếnthứ nhất đượcgọilàcontrỏ. Bộ nhớ 2. Khai báo bi2. Khai báo bi ếế n con trn con tr ỏỏ 2. Khai báo bi2. Khai báo bi ếế n con trn con tr ỏỏ y Cú pháp: type *pointerVariable; type :xácđịnh kiểudữ liệucủabiếnmà type : xác định kiểu dữ liệu của biến mà con trỏ trỏ đến. Ví dụ: Ví dụ: int *a; a 3. Toán t 3. Toán t ửử con t r con t r ỏỏ (( p ointer o p erator sp ointer o p erator s )) (( pppp )) y Toán tử & là toán tử 1 ngôi, trả về địa chỉ bộ nhớ của toán hạn g của nó. ◦ Toán tử & dùng để gán địa chỉ của biến cho biến con trỏ Cú p há p : pp <Tên biến con trỏ>=&<Tên biến> 3. Toán t3. Toán t ửử con trcon tr ỏỏ (( pointer operatorspointer operators )) 3. Toán t3. Toán t ửử con trcon tr ỏỏ (( pointer operatorspointer operators )) y Ví dụ: a 25 x 25 a 25 x y 25 int a=25, x; int *y; y x=a; y=&a; y 3. Toán t3. Toán t ửử con trcon tr ỏỏ (( pointer operatorspointer operators )) 3. Toán t3. Toán t ửử con trcon tr ỏỏ (( pointer operatorspointer operators )) y Toán tử * : là toán tử một ngôi trả về giá trị tại địa chỉ con trỏ trỏ đến. Cú pháp : *<Tên biến con trỏ> V í d ụ : a=* p ; ụ p; 4. Các thao tác trên con trỏ4. Các thao tác trên con trỏ 4. Các thao tác trên con trỏ4. Các thao tác trên con trỏ y Lệnh gán con trỏ Có thể dùng phép gán để gán giá trị củamột con trỏ cho mộtcontrỏ khác có cùng kiểu V í d ụ : int x; int *p1, *p2; p1 = &x; p2 = p1; Sau khi đ ọ an l ệ nh trên đư ợ c th ự c hi ệ n , cả ọ ệ ợ ự ệ , hai p1 và p2 cùng trỏ đến biến x. 4. Các thao tác trên con trỏ4. Các thao tác trên con trỏ 4. Các thao tác trên con trỏ4. Các thao tác trên con trỏ y Phép toán số học trên con trỏ ◦ Chỉ có 2 phép toán sử dụng trên con trỏ là phép cộng và trừ ◦ Khi cộng (+) hoặctrừ (-) 1 con trỏ với1số n g u y ên N ; kết q uả trả về là 1 con trỏ.Con gy ; q trỏ này chỉđến vùng nhớ cách vùng nhớ của con trỏ hiệntạimộtsố nguyên lầnkích thướ ủ kiể dữ liệ ủ ó thướ cc ủ a kiể u dữ liệ uc ủ an ó . 4. Các thao tác trên con trỏ4. Các thao tác trên con trỏ 4. Các thao tác trên con trỏ4. Các thao tác trên con trỏ Ví dụ : char *a; short *b; lon g *c; Các con trỏ a, b, c lần lượt trỏ tới ô nhớ 1000 2000 à 3000 1000 , 2000 v à 3000 . Cộng các con trỏ với một số nguyên: 1// ỏ dời đi1b a = a + 1 ; // con tr ỏ a dời đi 1 b yte b = b + 1;//con trỏ b dời đi 2 byte c = c + 1; //con trỏ cdời đi4byte c = c + 1; //con trỏ c dời đi 4 byte [...]... 0; } 6 Con trỏ void (void pointers) Con trỏ void là một lọai con trỏ đặc biệt mà có thể trỏ đến bất kỳ kiểu dữ liệu nào ể ể Cú pháp: void *pointerVariable; Ví dụ: void *p; p = &a; // p trỏ đến biến nguyên a p = &f; //p trỏ đến biến thực f 6 Con trỏ void (void pointers) Kiểu dữ liệu khi khai báo biến con trỏ chính là kiểu dữ liệu của ô nhớ mà con trỏ có thể trỏ ể ể đến Địa chỉ đặ vào b ế con trỏ phải... ch; 8 Con trỏ và mảng p được gán địa chỉ của phần tử đầu tiên của mảng ch p = ch; Để tham chiếu phần tử thứ 3 trong mảng ch, ta dùng một trong 2 cách sau: ch[2] *(p+2) (p+2) 8 Con trỏ và mảng Truy cập các phần tử mảng bằng con trỏ Kiểu mảng Kiểu con trỏ &[0] & [ Vị t í ] [] + [] *(< Tên con trỏ >... Các thao tác trên con trỏ #include #include #include void main () { int a = 20, b = 15, *pa, *pb, temp; pa = &a; // con trỏ pa chứa địa chỉ của a pb = &b; // con trỏ pb chứa địa chỉ của b temp = *pa; // kết quả xuất ra *pa = *pb; *pb = temp; màn hì h à hình cout . CHƯƠNG 5CHƯƠNG 5 CON TR CON TRỎ (Pointers)( Pointers) (Pointers)( Pointers) 1. Giớithiệu1. Giớithiệu 1. Giới thiệu1. Giới thiệu y Mộtcontrỏ là 1biếnchứamột địachỉ. địa chỉ con trỏ trỏ đến. Cú pháp : *<Tên biến con trỏ& gt; V í d ụ : a=* p ; ụ p; 4. Các thao tác trên con trỏ4 . Các thao tác trên con trỏ 4. Các thao tác trên con trỏ4 . Các . cùng trỏ đến biến x. 4. Các thao tác trên con trỏ4 . Các thao tác trên con trỏ 4. Các thao tác trên con trỏ4 . Các thao tác trên con trỏ y Phép toán số học trên con trỏ ◦