Danh mục

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    
Hoai.2512

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àyContrỏ. 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ài liệu được xem nhiều: