1. Trang chủ
  2. » Công Nghệ Thông Tin

Tìm hiểu hàm và thư viện lập trình phần 5 doc

5 280 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 160,97 KB

Nội dung

21 © 2004, HOÀNG MINH SƠN Chương 3: Hàm và thư viện 3.3.2 Truyền ₫ịachỉ int SumInt(int* p, int N); // Function call void main() { int a[] = {1, 2, 3, 4}; int k = SumInt(a,4); } // Function definition int SumInt(int* p, int N) { int *p2 = p + N, k = 0; while (p < p2) k += *p++; return k; } SP a[0]=1 a[1]=2 a[2]=3 a[3]=4 00A0 k p=00A0 N=4 k SP k = 45 k = 45 22 © 2004, HOÀNG MINH SƠN Chương 3: Hàm và thư viện Truyềnmảng tham số? int SumInt(int p[4], int N); // Function call void main() { int a[] = {1, 2, 3, 4}; int k = SumInt(a,4); } // Function definition int SumInt(int p[4], int N) { int *p2 = p + N, k = 0; while (p < p2) k += *p++; return k; } Bảnchấtnhư trongvídụ trước: Truyền ₫ịachỉ! 23 © 2004, HOÀNG MINH SƠN Chương 3: Hàm và thư viện Thử lạivídụ₫ọctừ bàn phím #include <iostream.h> void ReadInt(const char* userPrompt, int* pN) { cout << userPrompt; cin >> *pN; } void main() { int x = 5; ReadInt("Input an integer number:", &x); cout << "Now x is " << x; }  Kếtquả: x thay ₫ổigiátrị sau ₫ó(cũng là lý do tạisaohàm scanf() lạiyêucầukiểuthambiếnlàcon trỏ!) 24 © 2004, HOÀNG MINH SƠN Chương 3: Hàm và thư viện Khi nào sử dụng truyền ₫ịachỉ?  Khi cầnthay₫ổi"biến ₫ầuvào" (truynhậptrựctiếp vào ô nhớ, không qua bảnsao)  Khi kích cỡ kiểudữ liệulớn=> tránhsaochépdữ liệu vào ngănxếp  Truyềnthamsố là mộtmảng => bắtbuộctruyền ₫ịa chỉ  Lưuý: Sử dụng con trỏ₫ểtruyền ₫ịachỉ của vùng nhớ dữ liệu ₫ầuvào. Bảnthâncon trỏ có thể thay ₫ổi ₫ược trong hàm nhưng ₫ịachỉ vùng nhớ không thay ₫ổi(nội dung của vùng nhớ₫óthay₫ổi ₫ược): xem ví dụ biến p trong hàm SumInt trang 21. 25 © 2004, HOÀNG MINH SƠN Chương 3: Hàm và thư viện 3.3.3 Truyền tham chiếu (C++) #include <iostream.h> void ReadInt(const char* userPrompt, int& N) { cout << userPrompt; cin >> N; } void main() { int x = 5; ReadInt("Input an integer number:", x); cout << "Now x is " << x; }  Kếtquả: x thay ₫ổigiátrị sau ₫ó . tạisaohàm scanf() lạiyêucầukiểuthambiếnlàcon trỏ!) 24 © 2004, HOÀNG MINH SƠN Chương 3: Hàm và thư viện Khi nào sử dụng truyền ₫ịachỉ?  Khi cầnthay₫ổi"biến ₫ầuvào" (truynhậptrựctiếp vào. *p++; return k; } SP a[0]=1 a[1]=2 a[2]=3 a[3]=4 00A0 k p=00A0 N=4 k SP k = 45 k = 45 22 © 2004, HOÀNG MINH SƠN Chương 3: Hàm và thư viện Truyềnmảng tham số? int SumInt(int p[4], int N); // Function call void. thay ₫ổi(nội dung của vùng nhớ₫óthay₫ổi ₫ược): xem ví dụ biến p trong hàm SumInt trang 21. 25 © 2004, HOÀNG MINH SƠN Chương 3: Hàm và thư viện 3.3.3 Truyền tham chiếu (C++) #include <iostream.h> void

Ngày đăng: 31/07/2014, 04:20