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
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 ...
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ìm kiếm theo từ khóa liên quan:
Lập trình căn bản Bài giảng Lập trình căn bản Ngôn ngữ C Lập trình C Kiểu con trỏ Kiểu dữ liệu con trỏGợi ý tài liệu liên quan:
-
114 trang 240 2 0
-
80 trang 220 0 0
-
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 2 - Trần Hạnh Nhi
123 trang 156 0 0 -
Giáo trình Lập trình C căn bản - HanoiAptech Computer Education Center
136 trang 132 0 0 -
Giáo trình Kỹ thuật lập trình C: Căn bản & nâng cao - Phần 1
202 trang 127 0 0 -
Hướng dẫn thực hành lập trình C trên Visual Studio
9 trang 126 0 0 -
Giáo trình Tin học đại cương: Phần 2 - Trần Đình Khang
118 trang 117 0 0 -
124 trang 112 3 0
-
Giáo trình Ngôn ngữ lập trình C căn bản
142 trang 100 0 0 -
Program C Ansi Programming Embedded Systems in C and C++ phần 4
12 trang 96 0 0