Bài giảng Tin học cơ sở 4: Con trỏ - TS. Vũ Thị Hồng Nhạn
Số trang: 30
Loại file: pdf
Dung lượng: 783.29 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:
Bài giảng Tin học cơ sở 4: Con trỏ, cung cấp cho người học những kiến thức như ý nghĩa, cách khai báo con trỏ; Sử dụng con trỏ trong mảng, chuỗi; truyền mảng và chuỗi giữa các hàm qua con trỏ; truyền mảng và chuỗi giữa các hàm qua con trỏ; xử lý mảng qua con trỏ. 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 Tin học cơ sở 4: Con trỏ - TS. Vũ Thị Hồng NhạnTin Học Cơ Sở 4: Con trỏ Vũ Thị Hồng Nhạn (vthnhan@vnu.edu.vn) Human Machine Interaction Lab. Vietnam National Univ., Hanoi Nội dung Ý nghĩa, cách khai báo con tr S d ng con tr trong m ng, chu i Truy n m ng và chu i gi a các hàm qua con tr X lý m ng qua con tr10/03/2016 Pointers, Arrays & Strings Page 2 Con trỏ Con tr là m t bi n ch a đ a ch c a bi n Trong m t s tính toán dùng con tr là cách duy nh t đ gi i quy t v nđ S d ng con tr có ưu đi m thư ng giúp cho chương trình ng n g n và hi u qu Tuy nhiên cũng r t nguy hi m n u như l p trình viên không c n th n10/03/2016 Pointers, Arrays & Strings Page 3 Bộ nhớ Các bi n đư c lưu trong b nh B nh có th đư c xem như m t m ng r t l n (array) M i v trí trong b nh có m t đ a ch M t đ a ch là m t s nguyên, gi ng như ch m c trong m ng Trong C, m t đ a ch b nh đư c g i là m t “con tr ” C cho phép truy c p v trí b nh m t cách tr c ti p10/03/2016 Pointers, Arrays & Strings Page 4 Hai toán tử Toán t & Tr l i đ a ch c a m t đ i s Nói cách khác, tr l i con tr t i đ i s Đ i s (argument) ph i là m t “tên bi n” Toán t * Tr l i giá tr lưu đ a ch b nh c th Đ i s (argument) ph i là m t con tr10/03/2016 Pointers, Arrays & Strings Page 5 Khai báo Khai báo Ý nghĩa int i Một biến nguyên int *p Cấp phát 2 bytes để lưu giữ địa chỉ của biến nguyên, và vùng nhớ có tên là p int **m Con trỏ “trỏ tới” con trỏ nguyên Address 1203 p = &i Con trỏ p chỉ tới địa chỉ chứa i i=10 printf(“%p”, p) In ra địa chỉ của i (nằm trong p) p=1203 m = &p m trỏ tới p *p=10 printf(“%p”, m) In ra địa chỉ của p (trong m)10/03/2016 Pointers, Arrays & Strings Page 6 Ví dụ 1 Khai báo *px là nội dung của px int main(){ nên khi thực *px +=10 int x=6, y=7; giá trị của ix là 16 int *px, *py; printf(x=%d, y=%d , x, y); Gán px= &x; px=&ix py= &y; py=&iy *px +=10; *py +=10; printf(x=%d, y=%d , x, y); }10/03/2016 Pointers, Arrays & Strings Page 7Ví dụ 2 Truyền ñịa chỉ sang hàm void init(int, int); //khai báo hàm int main(){ Khi nội dung c a bi n con tr *px, *py int x, y; thay đ i init(&x, &y); thì x, y c a chương trình thay đ i theo printf(x=%d, y=%d, x, y); getch(); return 0; } Truy n 2 tham s là void init(int *px, int *py){ //Định nghĩa hàm “địa chỉ của biến x, y” *px=6; // gán 6 cho nội dụng của px *py=7; }10/03/2016 Pointers, Arrays & Strings Page 8Ví dụ 3 Truyền ñịa chỉ sang hàm Hoán v giá tr c a 2 bi n void swap(int *px, int *px){ int main(){ int temp = *px; int a=6, b=7; *px=*py; printf(Truoc: a=%d, b=%d , a, b); *py=temp; } swap(&a, &b); pr ...
Nội dung trích xuất từ tài liệu:
Bài giảng Tin học cơ sở 4: Con trỏ - TS. Vũ Thị Hồng NhạnTin Học Cơ Sở 4: Con trỏ Vũ Thị Hồng Nhạn (vthnhan@vnu.edu.vn) Human Machine Interaction Lab. Vietnam National Univ., Hanoi Nội dung Ý nghĩa, cách khai báo con tr S d ng con tr trong m ng, chu i Truy n m ng và chu i gi a các hàm qua con tr X lý m ng qua con tr10/03/2016 Pointers, Arrays & Strings Page 2 Con trỏ Con tr là m t bi n ch a đ a ch c a bi n Trong m t s tính toán dùng con tr là cách duy nh t đ gi i quy t v nđ S d ng con tr có ưu đi m thư ng giúp cho chương trình ng n g n và hi u qu Tuy nhiên cũng r t nguy hi m n u như l p trình viên không c n th n10/03/2016 Pointers, Arrays & Strings Page 3 Bộ nhớ Các bi n đư c lưu trong b nh B nh có th đư c xem như m t m ng r t l n (array) M i v trí trong b nh có m t đ a ch M t đ a ch là m t s nguyên, gi ng như ch m c trong m ng Trong C, m t đ a ch b nh đư c g i là m t “con tr ” C cho phép truy c p v trí b nh m t cách tr c ti p10/03/2016 Pointers, Arrays & Strings Page 4 Hai toán tử Toán t & Tr l i đ a ch c a m t đ i s Nói cách khác, tr l i con tr t i đ i s Đ i s (argument) ph i là m t “tên bi n” Toán t * Tr l i giá tr lưu đ a ch b nh c th Đ i s (argument) ph i là m t con tr10/03/2016 Pointers, Arrays & Strings Page 5 Khai báo Khai báo Ý nghĩa int i Một biến nguyên int *p Cấp phát 2 bytes để lưu giữ địa chỉ của biến nguyên, và vùng nhớ có tên là p int **m Con trỏ “trỏ tới” con trỏ nguyên Address 1203 p = &i Con trỏ p chỉ tới địa chỉ chứa i i=10 printf(“%p”, p) In ra địa chỉ của i (nằm trong p) p=1203 m = &p m trỏ tới p *p=10 printf(“%p”, m) In ra địa chỉ của p (trong m)10/03/2016 Pointers, Arrays & Strings Page 6 Ví dụ 1 Khai báo *px là nội dung của px int main(){ nên khi thực *px +=10 int x=6, y=7; giá trị của ix là 16 int *px, *py; printf(x=%d, y=%d , x, y); Gán px= &x; px=&ix py= &y; py=&iy *px +=10; *py +=10; printf(x=%d, y=%d , x, y); }10/03/2016 Pointers, Arrays & Strings Page 7Ví dụ 2 Truyền ñịa chỉ sang hàm void init(int, int); //khai báo hàm int main(){ Khi nội dung c a bi n con tr *px, *py int x, y; thay đ i init(&x, &y); thì x, y c a chương trình thay đ i theo printf(x=%d, y=%d, x, y); getch(); return 0; } Truy n 2 tham s là void init(int *px, int *py){ //Định nghĩa hàm “địa chỉ của biến x, y” *px=6; // gán 6 cho nội dụng của px *py=7; }10/03/2016 Pointers, Arrays & Strings Page 8Ví dụ 3 Truyền ñịa chỉ sang hàm Hoán v giá tr c a 2 bi n void swap(int *px, int *px){ int main(){ int temp = *px; int a=6, b=7; *px=*py; printf(Truoc: a=%d, b=%d , a, b); *py=temp; } swap(&a, &b); pr ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Tin học cơ sở 4 Tin học cơ sở 4 Con trỏ Xử lý mảng qua con trỏ Cách khai báo con trỏ Truyền địa chỉ sang hàmGợi ý tài liệu liên quan:
-
Bài giảng Tin học cơ sở 4: Các kiểu dữ liệu tự tạo - TS. Vũ Thị Hồng Nhạn
24 trang 97 0 0 -
Bài giảng Tin học cơ sở 4 - Bài 8: Con trỏ
34 trang 38 0 0 -
36 trang 31 0 0
-
Bài giảng Lập trình nâng cao (Advanced Programming) - Chương 7: Con trỏ
56 trang 30 0 0 -
Bài giảng Tin học cơ sở 4 - Bài 4: Luồng điều khiển, Lệnh lặp
33 trang 28 0 0 -
Giáo trình ghép kênh số PDH & SDH - Chương 2
20 trang 27 0 0 -
Bài giảng Tin học cơ sở 4 - Bài 7: Nhập xuất tệp
22 trang 27 0 0 -
Bài giảng Tin học cơ sở 4 - Bài 3: Luồng điều khiển, Lệnh rẽ nhánh
36 trang 26 0 0 -
Bài giảng Tin học cơ sở 4 - Bài 1: Giới thiệu
26 trang 25 0 0 -
Bài giảng Tin học cơ sở 4 - Bài 5: Mảng
23 trang 25 0 0