Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 12: Pointer (GV. Nguyễn Nhật Nam)
lượt xem 2
download
Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 12: Pointer (GV. Nguyễn Nhật Nam). Bài giảng có nội dung trình bày về khái niệm; thao tác trên pointer; pointer và mảng; đối số của hàm là pointer - truyền đối số theo số dạng tham số biến; hàm trả về pointer và mảng; chuỗi ký tự; pointer và việc định vị bộ nhớ động; mảng các pointer; pointer của pointer;... Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 12: Pointer (GV. Nguyễn Nhật Nam)
- CHÖÔNG 12 POINTER CHÖÔNG 12 POINTER 12.1 Khaùi nieäm 12.7 Pointer vaø vieäc ñònh vò 12.2 Thao taùc treân POINTER boä nhôù ñoäng 12.3 POINTER vaø maûng 12.8 Maûng caùc pointer 12.4 Ñoái soá cuûa haøm laø pointer - 12.9 Pointer cuûa pointer truyeàn ñoái soá theo soá daïng tham 12.10 Ñoái soá cuûa haøm MAIN soá bieán 12.11 Pointer troû ñeán haøm 12.5 Haøm traû veà pointer vaø 12.12 ÖÙng duïng maûng Baøi taäp cuoái chöông 12.6 Chuoãi kyù töï
- CHÖÔNG 12 POINTER 12.1 KHAÙI NIEÄM Trong ngoân ngöõ C, moãi bieán vaø chuoãi kyù töï ñeàu ñöôïc löu tröõ trong boä nhôù vaø coù ñòa chæ rieâng, ñòa chæ naøy xaùc ñònh vò trí cuûa chuùng trong boä nhôù. Khi laäp trình trong C, nhieàu luùc chuùng ta caàn laøm vieäc vôùi caùc ñòa chæ naøy, vaø C uûng hoä ñieàu ñoù khi ñöa ra kieåu döõ lieäu pointer (taïm dòch laø con troû) ñeå khai baùo cho caùc bieán löu ñòa chæ.
- CHÖÔNG 12 POINTER 12.1 KHAÙI NIEÄM Moät bieán coù kieåu pointer coù theå löu ñöôïc döõ lieäu trong noù, laø ñòa chæ cuûa moät ñoái töôïng ñang khaûo saùt. Ñoái töôïng ñoù coù theå laø moät bieán, moät chuoãi hoaëc moät haøm.
- CHÖÔNG 12 POINTER 12.1 KHAÙI NIEÄM Ví duï 13.1: Chöông trình ñoåi trò #include void Swap (int doi_1, int doi_2); main() { int a = 3, b = 4;// Khai baùo vaø khôûi ñoäng trò // In trò tröôùc khi goïi haøm printf (“Tröôùc khi goïi haøm, trò cuûa bieán a = %d, b = %d.\n”); // Goïi haøm ñoåi trò Swap (a, b); // In trò sau khi goïi haøm printf (“Sau khi goïi haøm, trò cuûa bieán a = %d, b = %d.\n”);}
- CHÖÔNG 12 POINTER 12.1 KHAÙI NIEÄM Ví duï 13.1: Chöông trình ñoåi trò void Swap (int doi_1, int doi_2) { int temp = doi_1; doi_1 = doi_2 ; doi_2 = temp ; } Tröôùc khi goïi haøm, trò cuûa bieán a = 3, b = 4. Sau khi goïi haøm, trò cuûa bieán a = 3, b = 4.
- CHÖÔNG 12 POINTER 12.1 KHAÙI NIEÄM Hình aûnh stack thöïc thi khi ñieàu khieån chöông trình ñang ôû doøng doi_1 = doi_2 ;
- CHÖÔNG 12 POINTER 12.1 KHAÙI NIEÄM Hình aûnh stack thöïc thi khi ñieàu khieån ñeán cuoái chöông trình
- CHÖÔNG 12 POINTER 12.2 THAO TAÙC TREÂN POINTER 12.2.1 Khai baùo bieán pointer - pointer haèng Trong ngoân ngöõ C coù moät toaùn töû laáy ñòa chæ cuûa moät bieán ñang laøm vieäc, toaùn töû naøy laø moät daáu & (ampersand), taïm goïi laø toaùn töû laáy ñòa chæ. Cuù phaùp nhö sau: & bieán vôùi bieán laø moät bieán thuoäc kieåu baát kyø, nhöng khoâng ñöôïc laø bieán thanh ghi.
- CHÖÔNG 12 POINTER 12.2 THAO TAÙC TREÂN POINTER 12.2.1 Khai baùo bieán pointer - pointer haèng Ví duï: Neáu coù moät bieán ñaõ ñöôïc khai baùo laø int heä_soá_a; thì & heä_soá_a seõ laø ñòa chæ cuûa bieán heä_soá_a.
- CHÖÔNG 12 POINTER 12.2 THAO TAÙC TREÂN POINTER 12.2.1 Khai baùo bieán pointer - pointer haèng Cuù phaùp ñeå khai baùo bieán pointer: kieåu * teân_bieán_pointer vôùi - kieåu coù theå laø kieåu baát kyø, xaùc ñònh kieåu döõ lieäu coù theå ñöôïc ghi vaøo ñoái töôïng maø con troû ñang troû ñeán. - teân_bieán_pointer laø teân cuûa bieán con troû, moät danh hieäu hôïp leä.
- CHÖÔNG 12 POINTER 12.2 THAO TAÙC TREÂN POINTER 12.2.1 Khai baùo bieán pointer - pointer haèng Bieán hoaëc ñoái töôïng maø con troû ñang troû ñeán coù theå ñöôïc truy xuaát qua teân cuûa bieán con troû vaø daáu "*" ñi ngay tröôùc bieán con troû, cuù phaùp cuï theå nhö sau: * teân_bieán_con_troû
- CHÖÔNG 12 POINTER 12.2 THAO TAÙC TREÂN POINTER 12.2.1 Khai baùo bieán pointer - pointer haèng Ví duï: Xeùt ví duï sau: int object; int *pint; object = 5; pint = &object;
- CHÖÔNG 12 POINTER 12.2 THAO TAÙC TREÂN POINTER 12.2.1 Khai baùo bieán pointer - pointer haèng Ví duï: AND R0, R0, #0 ; xoùa R0 ADD R0, R0, #5 ; R0 = 5 STR R0, R5, #0 ; object = 5 ADD R0, R5, #0 ; R0 = R5 + 0; R0 chöùa ñòa chæ cuûa bieán object STR R0, R5, #-1 ; R5 – 1: ñòa chæ cuûa bieán pint, pint
- CHÖÔNG 12 POINTER 12.2 THAO TAÙC TREÂN POINTER 12.2.1 Khai baùo bieán pointer - pointer haèng Ví duï: Xeùt caùc khai baùo sau: int a, b; int *pa; Sau khi khai baùo, ta coù ba oâ nhôù cho ba bieán a, b vaø pa nhö sau:
- CHÖÔNG 12 POINTER
- CHÖÔNG 12 POINTER
- CHÖÔNG 12 POINTER 12.2 THAO TAÙC TREÂN POINTER 12.2.1 Khai baùo bieán pointer - pointer haèng Ví duï: void * pvoid; int a, * pint; double b, * pdouble; pvoid = (void *) &a; pint = (int *) pvoid; (*pint) ++; pvoid = (void *) &b; pdouble = (double *) pvoid; (*pdouble) -- ;
- CHÖÔNG 12 POINTER 12.2 THAO TAÙC TREÂN POINTER 12.2.2 Caùc pheùp toaùn treân pointer Coù theå coäng, tröø moät pointer vôùi moät soá nguyeân (int, long,...). Keát quaû laø moät pointer. Ví duï : int *pi1, *pi2, n; pi1 = &n; pi2 = pi1 + 3;
- CHÖÔNG 12 POINTER 12.2 THAO TAÙC TREÂN POINTER 12.2.2 Caùc pheùp toaùn treân pointer Ví duï: Cho khai baùo int a[20]; int *p; p = &a[0]; p += 3; /* p löu ñòa chæ phaàn töû a[0 + 3], töùc &a[3] */
- CHÖÔNG 12 POINTER 12.2 THAO TAÙC TREÂN POINTER 12.2.2 Caùc pheùp toaùn treân pointer Khoâng theå thöïc hieän caùc pheùp toaùn nhaân, chia, hoaëc laáy dö moät pointer vôùi moät soá, vì pointer löu ñòa chæ, neân neáu thöïc hieän ñöôïc ñieàu naøy cuõng khoâng coù moät yù nghóa naøo caû. Pheùp tröø giöõa hai pointer vaãn laø moät pheùp toaùn hôïp leä, keát quaû laø moät trò thuoäc kieåu int bieåu thò khoaûng caùch (soá phaàn töû) giöõa hai pointer ñoù.
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Hệ thống máy tính - Chương 3: Kiến trúc tập lệnh
24 p | 286 | 28
-
Bài giảng Hệ thống máy tính: Chương 5 - Nguyễn Kim Khánh
8 p | 128 | 16
-
Bài giảng Hệ thống máy tính: Chương 1 - Nguyễn Kim Khánh
9 p | 137 | 15
-
Bài giảng Hệ thống máy tính: Chương 2 - Nguyễn Kim Khánh
20 p | 131 | 15
-
Bài giảng Hệ thống máy tính - Chương 9: Lắp ráp và cài đặt máy tính
64 p | 122 | 14
-
Bài giảng Hệ thống máy tính - Chương 1: Tổng quan về Kiến trúc máy tính
61 p | 198 | 13
-
Bài giảng Hệ thống máy tính: Chương 3 - Nguyễn Kim Khánh
14 p | 126 | 13
-
Bài giảng Hệ thống máy tính - Chương 4: Hệ thống IO (Input Output System)
16 p | 270 | 7
-
Bài giảng Hệ thống máy tính (Computer Systems): Chương 2 - Nguyễn Kim Khánh
80 p | 14 | 5
-
Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 1: Ôn lại các kiến thức cơ bản về máy tính (GV. Nguyễn Nhật Nam)
58 p | 32 | 5
-
Bài giảng Hệ thống máy tính: Chương 2.2 - TS. Trần Thị Minh Khoa
23 p | 47 | 5
-
Bài giảng Hệ thống máy tính và ngôn ngữ lập trình - Chương 1: Ôn tập các kiến thức cơ bản về máy tính
39 p | 57 | 4
-
Bài giảng Hệ thống máy tính: Chương 2.1 - TS. Trần Thị Minh Khoa
30 p | 23 | 4
-
Bài giảng Hệ thống máy tính - Chương 5: Tổng quan hệ điều hành
8 p | 105 | 4
-
Bài giảng Hệ thống máy tính (Computer Systems): Chương 1 - Nguyễn Kim Khánh
68 p | 13 | 3
-
Bài giảng Hệ thống máy tính và ngôn ngữ C: Chương 1 - TS. Nguyễn Phúc Khải
39 p | 7 | 3
-
Bài giảng Hệ thống máy tính: Chương 1 - TS. Trần Thị Minh Khoa
15 p | 20 | 2
-
Bài giảng Hệ thống máy tính - Chương 0: Giới thiệu
7 p | 103 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn