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

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

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

Thông tin tài liệu

26 © 2004, HOÀNG MINH SƠN Chương 3: Hàm và thư viện Thử ví dụ hàm swap #include <iostream.h> void swap(int& a, int& b) { int temp = a; a = b; b = temp; } void main() { int x = 5, y = 10; swap(x,y); cout << "Now x is " << x << ", y is " << y; } 27 © 2004, HOÀNG MINH SƠN Chương 3: Hàm và thư viện Khi nào sử dụng truyền tham chiếu?  Chỉ trong C++  Khi cầnthay₫ổi"biến ₫ầuvào" (truynhậptrựctiếp vào ô nhớ, không qua bảnsao)  Mộtthambiếnthamchiếucóthể₫óng vai trò là ₫ầu ra (chứakếtquả), hoặccóthể vừalà₫ầuvàovà₫ầu ra  Khi kích cỡ kiểudữ liệulớn=> tránhsaochépdữ liệu vào ngănxếp, ví dụ: void copyData(const Student& sv1, Student& sv2) { sv2.birthday = sv1.birthday; } 28 © 2004, HOÀNG MINH SƠN Chương 3: Hàm và thư viện 3.3.4 Kiểutrả về  Kiểutrả về: gầnnhư tùy ý, chỉ không thể trả về trực tiếpmộtmảng  Về nguyên tắc, có thể trả về kiểu: —Giátrị —Con trỏ —Thamchiếu  Tuy nhiên, cầnrấtthậntrọng vớitrả về₫ịachỉ hoặc tham chiếu: — Không bao giờ trả về con trỏ hoặc tham chiếu vào biếncục bộ — Không bao giờ trả về con trỏ hoặc tham chiếu vào tham biếntruyềnqua giátrị  Vớingườilập trình ít có kinh nghiệm: chỉ nên trả về kiểugiátrị 29 © 2004, HOÀNG MINH SƠN Chương 3: Hàm và thư viện Cơ chế trả về int SumInt(int a, int b) { int k = 0; for (int i=a; i <= b; ++i) k +=i; return k; } void main() { int x = 5, k = 0; k = SumInt(x,10); } SP x = 5 k =0 Ngănxếp SP a = 5 b = 10 k => 45 45 k = 45 30 © 2004, HOÀNG MINH SƠN Chương 3: Hàm và thư viện Trả về con trỏ  Viếthàmtrả về₫ịachỉ củaphầntử lớnnhấttrongmộtmảng: int* FindMax(int* p, int n) { int *pMax = p; int *p2 = p + n; while (p < p2) { if (*p > *pMax) pMax = p; ++p; } return pMax; } void main() { int s[5] = { 1, 2, 3, 4, 5}; int *p = FindMax(s,5); } . 26 © 2004, HOÀNG MINH SƠN Chương 3: Hàm và thư viện Thử ví dụ hàm swap #include <iostream.h> void swap(int& a, int&. } 27 © 2004, HOÀNG MINH SƠN Chương 3: Hàm và thư viện Khi nào sử dụng truyền tham chiếu?  Chỉ trong C++  Khi cầnthay₫ổi"biến ₫ầuvào" (truynhậptrựctiếp vào ô nhớ, không qua bảnsao)  Mộtthambiếnthamchiếucóthể₫óng. = 5 b = 10 k => 45 45 k = 45 30 © 2004, HOÀNG MINH SƠN Chương 3: Hàm và thư viện Trả về con trỏ  Viếthàmtrả về₫ịachỉ củaphầntử lớnnhấttrongmộtmảng: int* FindMax(int* p, int n) { int *pMax

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

Từ khóa liên quan

Mục lục

  • Kỹ thuật lập trìnhPhần II: Lập trình có cấu trúc

  • Nội dung chương 3

  • 3.1 Hàm và lập trình hướng hàm

  • Hàm là gì?

  • Ví dụ phân tích

  • Phương án 4 trong 1

  • Phương án phân hoạch hàm (1)

  • Phương án phân hoạch hàm (1)

  • Phương án phân hoạch hàm (1)

  • Phương án phân hoạch hàm (2)

  • Phương án phân hoạch hàm (2)

  • 3.2 Khai báo và định nghĩa hàm

  • Khai báo hàm và lời gọi hàm

  • Khai báo hàm C/C++ ở đâu?

  • Định nghĩa hàm ở đâu?

  • 3.3 Truyền tham số và trả về kết quả

  • Tham biến hình thức và tham số thực tế

  • 3.3.1 Truyền giá trị

  • Thử ví dụ đọc từ bàn phím

  • Truyền giá trị

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan