Danh mục

Bài giảng Lập trình căn bản - Chương 7: Kiểu con trỏ

Số trang: 27      Loại file: ppt      Dung lượng: 471.50 KB      Lượt xem: 20      Lượt tải: 0    
Jamona

Phí tải xuống: 18,000 VND Tải xuống file đầy đủ (27 trang) 0
Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Chương 7 giới thiệu kiểu dữ liệu con trỏ. Thông qua chương này người học sẽ biết được cách khai báo và sử dụng biến con trỏ, biết được con trỏ và mảng, biết được con trỏ và tham số hình thức của hàm. Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình căn bản - Chương 7: Kiểu con trỏLẬP TRÌNH CĂN BẢN Phần 2 - Chương 7 KIỂU CON TRỎ N.C. Danh 1Nộidungchươngnày Giớithiệukiểudữliệucontrỏ Khaibáovàsửdụngbiếncontrỏ Contrỏvàmảng Contrỏvàthamsốhìnhthứccủahàm 2Giớithiệukiểudữliệucontrỏ(pointer)(1) 1 con trỏ là 1 biến được dùng để chứa địa chỉ của ô nhớ trong bộ nhớ. Kích thước của biến con trỏ luôn là 2 byte. Ví dụ 1: float a=3.145; float* ptr; //ptr is a pointer ptr=&a; pointer ptr variable a FFF2 3.145 FFF2 (address) 3Giớithiệukiểudữliệucontrỏ(2) Ví dụ 2: In Linux 4Khaibáovàsửdụngbiếncontrỏ Khaibáobiếncontrỏ Cácthaotáctrêncontrỏ 5Khaibáobiếncontrỏ inta,b,*pa,*pb;//pavàpbsẽchỉđếnbiếnint floatf,*pf; //pavàpbsẽchỉđếnbiếnfloat void*ptr;//ptrsẽchỉvàobấtkỳbiếnkiểu gì Cúpháp: *;  Ýnghĩa:KhaibáomộtbiếncótênlàTêncontrỏdùngđể chứađịachỉcủacácbiếncókiểuKiểu. 6Cácthaotáctrêncontrỏ Gánđịachỉcủabiếnchobiếncontrỏ Nộidungcủaônhớcontrỏchỉtới Cấpphátvùngnhớchobiếncontrỏ Cấpphátlạivùngnhớchobiếncontrỏ Giảiphóngvùngnhớchobiếncontrỏ Mộtsốphéptoántrêncontrỏ 7Gánđịachỉcủabiếnchobiếncontrỏ+Nộidungcủaônhớcontrỏchỉtới(1) Dùng & để lấy ra địa chỉ bộ nhớ (memory address) của 1 biến inta=6; int*c=&a;//&alàđịachỉbộnhớcủabiếna Dùng*đểtruycập(access)đếnnộidung(content)củabiến mà1contrỏđangchỉđến inta=6; int*c=&a; *c=7; /*Thay đổi nội dung của biến a bằng cách dùngđịachỉcủanóđượcchứatrong contrỏc*/ tươngđươngvới a=7; 8Gánđịachỉcủabiếnchobiếncontrỏ+Nộidungcủaônhớcontrỏchỉtới(2) 9Gánđịachỉcủabiếnchobiếncontrỏ+Nộidungcủaônhớcontrỏchỉtới(3) Lưu ý: => Error! Vì đã cho 1 con trỏ chỉ đến 1 biến khác kiểu với nó 10Cấpphátvùngnhớchobiếncontrỏ(1)  Có 2 cách để dùng được biến con trỏ 1. Cho nó chứa địa chỉ của 1 vùng nhớ đang tồn tại inta=6; int*c=&a;//&alàđịachỉbộnhớcủabiếna 2. Cấp phát 1 vùng nhớ mới, rồi cho con trỏ chỉ đến int*ptr; ptr=(int*)malloc(sizeof(int)); *ptr=6; pointer ptr FFFA 6 FFFA (address) 11Cấpphátvùngnhớchobiếncontrỏ(2) void*malloc(size_tsize):Cấpphátvùngnhớcókíchthước làsize(byte) void *calloc(size_t nitems, size_t size): Cấp phát vùng nhớ cókíchthướclànitems*size(byte) Vídụ: inta,*pa,*pb; pa=(int*)malloc(sizeof(int)); /*Cấpphátvùngnhớcókíchthước bằngvớikíchthướccủamộtsốnguyên */ pb=(int*)calloc(10,sizeof(int));/*Cấpphátvùngnhớcóthểchứa được10sốnguyên*/ 12Cấpphátlạivùngnhớchobiếncontrỏ inta,*pa; pa = (int*)malloc(sizeof(int)); /*Cấp phát vùng nhớ có kíchthước2byte*/ pa=realloc(pa,6); /*Cấpphátlạivùngnhớcó kíchthướcmớilà6byte*/ void*realloc(void*block,size_tsize):  Ýnghĩa:  Cấpphátlại1vùngnhớdocontrỏblockquảnlý,vùngnhớnàycó kíchthướcmớilàsize;khicấpphátlạithìnộidungvùngnhớ trướcđóđượccopyđếnvùngnhớmới.  Kếtquảtrảvềcủahàmlàđịachỉđầutiêncủavùngnhớmới.Địa chỉnàycóthểkhácvớiđịachỉđượcchỉrakhicấpphátbanđầu. KếtquảlàNULLnếukhôngcấpphátđược. 13Giảiphóng ...

Tài liệu được xem nhiều: