Bài giảng Kỹ thuật lập trình: Dữ liệu kiểu con trỏ (Cơ bản) - ThS. Đặng Bình Phương
Số trang: 40
Loại file: ppt
Dung lượng: 3.29 MB
Lượt xem: 11
Lượt tải: 0
Xem trước 4 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng này trang bị cho người học những kiến thức về dữ liệu kiểu con trỏ. Các nội dung chính trong chương này gồm có: Khái niệm và cách sử dụng, các cách truyền đối số cho hàm, con trỏ và mảng một chiều, con trỏ và cấu trúc. 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 Kỹ thuật lập trình: Dữ liệu kiểu con trỏ (Cơ bản) - ThS. Đặng Bình PhươngBộmônCôngnghệphầnmềmKhoaCôngnghệthôngtinTrườngĐạihọcKhoahọcTựnhiên KỸTHUẬTLẬPTRÌNH ThS.ĐặngBìnhPhương dbphuong@fit.hcmus.edu.vn DỮLIỆUKIỂUCONTRỎ (CƠBẢN) 1 &&VCVC BB BB Nộidung 1 Khái niệm và cách sử dụng 2 Các cách truyền đối số cho hàm 3 Con trỏ và mảng một chiều 4 Con trỏ và cấu trúc Dữliệukiểucontrỏ(cơbản) 2 &&VCVC BB BB Kiếntrúcmáytính Bộnhớmáytính BộnhớRAMchứarấtnhiềuônhớ,mỗiônhớ cókíchthước1byte. RAMdùngđểchứamộtphầnhệđiềuhành, cáclệnhchươngtrình,cácdữliệu… Mỗiônhớcóđịachỉduynhấtvàđịachỉnày đượcđánhsốtừ0trởđi. Vídụ • RAM512MBđượcđánhđịachỉtừ0đến229–1 • RAM2GBđượcđánhđịachỉtừ0đến231–1 Dữliệukiểucontrỏ(cơbản) 3 &&VCVC BB BB KhaibáobiếntrongC Quytrìnhxửlýcủatrìnhbiêndịch Dànhriêngmộtvùngnhớvớiđịachỉduynhất đểlưubiếnđó. Liênkếtđịachỉônhớđóvớitênbiến. Khigọitênbiến,nósẽtruyxuấttựđộngđến ônhớđãliênkếtvớitênbiến. Vídụ:inta=0x1234; //Giảsửđịachỉ0x0B 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 … 34 34 12 12 00 00 00 00 … a Dữliệukiểucontrỏ(cơbản) 4 &&VCVC BB BB Kháiniệmcontrỏ Kháiniệm Địachỉcủabiếnlàmộtconsố. Tacóthểtạobiếnkhácđểlưuđịachỉcủa biếnnàyContrỏ. 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 … 34 34 12 12 00 00 00 00 0B 0B 00 00 00 00 00 00 … a pa Dữliệukiểucontrỏ(cơbản) 5 &&VCVC BB BB Khaibáocontrỏ Khaibáo Giốngnhưmọibiếnkhác,biếncontrỏmuốn sửdụngcũngcầnphảiđượckhaibáo *; Vídụ char *ch1, *ch2; int *p1, p2; ch1vàch2làbiếncontrỏ,trỏtớivùngnhớ kiểuchar(1byte). p1làbiếncontrỏ,trỏtớivùngnhớkiểuint(4 bytes)cònp2làbiếnkiểuintbìnhthường. Dữliệukiểucontrỏ(cơbản) 6 &&VCVC BB BB Khaibáocontrỏ Sửdụngtừkhóatypedef typedef *; ; Vídụ typedef int *pint; int *p1; pint p2, p3; Lưuýkhikhaibáokiểudữliệumới Giảmbốirốikhimớitiếpxúcvớicontrỏ. Nhưngdễnhầmlẫnvớibiếnthường. Dữliệukiểucontrỏ(cơbản) 7 &&VCVC BB BB ContrỏNULL Kháiniệm ContrỏNULLlàcontrỏkhôngtrỏvàđâucả. Khácvớicontrỏchưađượckhởitạo. int n; int *p1 = &n; int *p2; // unreferenced local variable int *p3 = NULL; NULL Dữliệukiểucontrỏ(cơbản) 8 &&VCVC BB BB Khởitạokiểucontrỏ Khởitạo Khimớikhaibáo,biếncontrỏđượcđặtởđịa chỉnàođó(khôngbiếttrước). chứagiátrịkhôngxácđịnh trỏđếnvùngnhớkhôngbiếttrước. Đặtđịachỉcủabiếnvàocontrỏ(toántử&) = &; Vídụ int a, b; int *pa = &a, *pb; pb = &b; Dữliệukiểucontrỏ(cơbản) 9 &&VCVC BB BB Sửdụngcontrỏ Truyxuấtđếnônhớmàcontrỏtrỏđến Contrỏchứamộtsốnguyênchỉđịachỉ. Vùngnhớmànótrỏđến,sửdụngtoántử*. Vídụ int a = 5, *pa = &a; printf(“%d ”, pa); // Giá trị biến pa printf(“%d ”, *pa); // Giá trị vùng nhớ pa trỏ đến printf(“%d ”, &pa); // Địa chỉ biến pa 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 … 05 05 00 00 00 ...
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình: Dữ liệu kiểu con trỏ (Cơ bản) - ThS. Đặng Bình PhươngBộmônCôngnghệphầnmềmKhoaCôngnghệthôngtinTrườngĐạihọcKhoahọcTựnhiên KỸTHUẬTLẬPTRÌNH ThS.ĐặngBìnhPhương dbphuong@fit.hcmus.edu.vn DỮLIỆUKIỂUCONTRỎ (CƠBẢN) 1 &&VCVC BB BB Nộidung 1 Khái niệm và cách sử dụng 2 Các cách truyền đối số cho hàm 3 Con trỏ và mảng một chiều 4 Con trỏ và cấu trúc Dữliệukiểucontrỏ(cơbản) 2 &&VCVC BB BB Kiếntrúcmáytính Bộnhớmáytính BộnhớRAMchứarấtnhiềuônhớ,mỗiônhớ cókíchthước1byte. RAMdùngđểchứamộtphầnhệđiềuhành, cáclệnhchươngtrình,cácdữliệu… Mỗiônhớcóđịachỉduynhấtvàđịachỉnày đượcđánhsốtừ0trởđi. Vídụ • RAM512MBđượcđánhđịachỉtừ0đến229–1 • RAM2GBđượcđánhđịachỉtừ0đến231–1 Dữliệukiểucontrỏ(cơbản) 3 &&VCVC BB BB KhaibáobiếntrongC Quytrìnhxửlýcủatrìnhbiêndịch Dànhriêngmộtvùngnhớvớiđịachỉduynhất đểlưubiếnđó. Liênkếtđịachỉônhớđóvớitênbiến. Khigọitênbiến,nósẽtruyxuấttựđộngđến ônhớđãliênkếtvớitênbiến. Vídụ:inta=0x1234; //Giảsửđịachỉ0x0B 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 … 34 34 12 12 00 00 00 00 … a Dữliệukiểucontrỏ(cơbản) 4 &&VCVC BB BB Kháiniệmcontrỏ Kháiniệm Địachỉcủabiếnlàmộtconsố. Tacóthểtạobiếnkhácđểlưuđịachỉcủa biếnnàyContrỏ. 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 … 34 34 12 12 00 00 00 00 0B 0B 00 00 00 00 00 00 … a pa Dữliệukiểucontrỏ(cơbản) 5 &&VCVC BB BB Khaibáocontrỏ Khaibáo Giốngnhưmọibiếnkhác,biếncontrỏmuốn sửdụngcũngcầnphảiđượckhaibáo *; Vídụ char *ch1, *ch2; int *p1, p2; ch1vàch2làbiếncontrỏ,trỏtớivùngnhớ kiểuchar(1byte). p1làbiếncontrỏ,trỏtớivùngnhớkiểuint(4 bytes)cònp2làbiếnkiểuintbìnhthường. Dữliệukiểucontrỏ(cơbản) 6 &&VCVC BB BB Khaibáocontrỏ Sửdụngtừkhóatypedef typedef *; ; Vídụ typedef int *pint; int *p1; pint p2, p3; Lưuýkhikhaibáokiểudữliệumới Giảmbốirốikhimớitiếpxúcvớicontrỏ. Nhưngdễnhầmlẫnvớibiếnthường. Dữliệukiểucontrỏ(cơbản) 7 &&VCVC BB BB ContrỏNULL Kháiniệm ContrỏNULLlàcontrỏkhôngtrỏvàđâucả. Khácvớicontrỏchưađượckhởitạo. int n; int *p1 = &n; int *p2; // unreferenced local variable int *p3 = NULL; NULL Dữliệukiểucontrỏ(cơbản) 8 &&VCVC BB BB Khởitạokiểucontrỏ Khởitạo Khimớikhaibáo,biếncontrỏđượcđặtởđịa chỉnàođó(khôngbiếttrước). chứagiátrịkhôngxácđịnh trỏđếnvùngnhớkhôngbiếttrước. Đặtđịachỉcủabiếnvàocontrỏ(toántử&) = &; Vídụ int a, b; int *pa = &a, *pb; pb = &b; Dữliệukiểucontrỏ(cơbản) 9 &&VCVC BB BB Sửdụngcontrỏ Truyxuấtđếnônhớmàcontrỏtrỏđến Contrỏchứamộtsốnguyênchỉđịachỉ. Vùngnhớmànótrỏđến,sửdụngtoántử*. Vídụ int a = 5, *pa = &a; printf(“%d ”, pa); // Giá trị biến pa printf(“%d ”, *pa); // Giá trị vùng nhớ pa trỏ đến printf(“%d ”, &pa); // Địa chỉ biến pa 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 … 05 05 00 00 00 ...
Tìm kiếm theo từ khóa liên quan:
Kỹ thuật lập trình Bài giảng Kỹ thuật lập trình Dữ liệu kiểu con trỏ Cách truyền đối số cho hàm Mảng một chiều Kiến trúc máy tínhGợi ý tài liệu liên quan:
-
67 trang 300 1 0
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 264 0 0 -
Giáo trình Kiến trúc máy tính và quản lý hệ thống máy tính: Phần 1 - Trường ĐH Thái Bình
119 trang 234 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 205 0 0 -
105 trang 204 0 0
-
84 trang 200 2 0
-
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 194 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 164 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 159 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 153 0 0