Tải bản đầy đủ (.pdf) (5 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (160.97 KB, 5 trang )

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 ₫ó

×