Đang chuẩn bị liên kết để tải về tài liệu:
PPLTCHUONG5 [Compatibility Mode]

Không đóng trình duyệt đến khi xuất hiện nút TẢI XUỐNG

27/12/2011111. Giới thiệu. CHƯƠNG 5.CON TRỎ.(Pointers)Một con trỏ là 1 biến chứa một địa chỉ bộ.nhớ. Địa chỉ này là vị trí của một đối tượng.khác trong bộ nhớNếu một biến chứa địa chỉ của một biến khác,.biến thứ nhất được gọi là trỏ đến biến thứ hai.13. Toán tử con trỏ (pointer.operators)1. Giới thiệu.Địa chỉ.bộ nhớ Biến trong.bộ nhớ2Một biến được cấp phát ô.nhớ tại địa chỉ 1000 có giá.trị là địa chỉ (1003) của 1.biến khác. Biến thứ nhất.được gọi là con trỏ.Toán tử & là toán tử 1 ngôi, trả về địa chỉ bộ.nhớ của toán hạng của nó◦ Toán tử & dùng để gán địa chỉ của biến cho.biến con trỏ.Cú pháp:.=&Bộ nhớ.341.27/12/2011113. Toán tử con trỏ (pointer.operators)2. Khai báo biến con trỏ. Cú pháp: type *pointerVariable;.type: xác định kiểu dữ liệu của biến mà.con trỏ trỏ đếnVí dụ:.int *a;.aVí dụ:.int a=25, x;.int *y;.x=a;.y=&a;a 25xy.y53. Toán tử con trỏ (pointer.operators). 64. Các thao tác trên con trỏToán tử * : là toán tử một ngôi trả về giá trị.tại địa chỉ con trỏ trỏ đếnCú pháp: *.Ví dụ: a=*p ;7Lệnh gán con trỏ.Có thể dùng phép gán để gán giá trị của một.con trỏ cho một con trỏ 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 x82.27/12/2011114. Các thao tác trên con trỏ. 4. Các thao tác trên con trỏPhép toán số học trên con trỏVí dụ :.char *a;.short *b;.long *c;.Các con trỏ a, b, c lần lượt trỏ tới ô nhớ.1000, 2000 và 3000Cộng các con trỏ với một số nguyên:.a = a + 1;//con trỏ a dời đi 1 byte.b = b + 1;//con trỏ b dời đi 2 byte.c = c + 1; //con trỏ c dời đi 4 byte◦ 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ặc trừ (-) 1 con trỏ với 1 số.nguyên N; kết quả trả về là 1 con trỏ. Con.trỏ này chỉ đến vùng nhớ cách vùng nhớ của.con trỏ hiện tại một số nguyên lần kích.thước của kiểu dữ liệu của nó.94. Các thao tác trên con trỏ104. Các thao tác trên con trỏ. Lưu ý: cả hai toán tử tăng (++) và giảm (--).đều có quyền ưu tiên lớn hơn toán tử *.Ví dụ: *p++;.Lệnh *p++ tương đương với *(p++) : thực.hiện là tăng p (địa chỉ ô nhớ mà nó trỏ tới.chứ không phải là giá trị trỏ tới).11123.27/12/2011114. Các thao tác trên con trỏ4. Các thao tác trên con trỏVí dụ:#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ình.cout << "a = " << a << endl; a = 15.cout << “b = ” << b;.b = 20.}*p++ = *q++;. Cả hai toán tử tăng (++) đều được thực hiện.sau khi giá trị của *q được gán cho *p và sau.đó cả q và p đều tăng lên 1. Lệnh này tương.đương với:*p = *q;.p++;.q++;.13145. Cấp phát bộ nhớ động5. Cấp phát bộ nhớ độngCon trỏ cung cấp sự hổ trợ cho cấp phát bộ.nhớ động trong C/C++ Cấp phát động là phương tiện nhờ đó một.chương trình có thể dành được thêm bộ nhớ.trong khi đang thực thi, giải phóng bộ nhớ khi.không cần thiết. C/C++ hổ trợ hai hệ thống cấp phát động:.một hệ thống được định nghĩa bởi C và một.được định nghĩa bởi C++. 15Cấp phát động được định nghĩa bởi C.−Vùng nhớ Heap được sử dụng cho việc cấp.phát động các khối bộ nhớ trong thời gian.thực thi chương trình. Gọi là bộ nhớ động−Hàm malloc() và free() dùng để cấp phát.và thu hồi bộ nhớ, trong thư viện stdlib.h164.27/12/2011115. Cấp phát bộ nhớ động. 5. Cấp phát bộ nhớ độngHàm malloc(): cấp phát bộ nhớ động−Prototype của hàm có dạng.void *malloc(length).− length: là số byte muốn cấp phát− Hàm malloc() trả về một con trỏ có kiểu.void, do đó có thể gán nó cho con trỏ có.kiểu bất kỳ−Sau khi cấp phát thành công, hàm malloc().trả về địa chỉ của byte đầu tiên của vùng.nhớ được cấp phát từ heap. Nếu không.thành công (không có đủ vùng nhớ rỗi yêu.cầu), hàm malloc() trả về null. Ví dụ:.char *p;.p = (char

TÀI LIỆU LIÊN QUAN
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.