Truyền đối số cho hàm

Một phần của tài liệu Bài giảng Tin học đại cương (Trang 77)

Có hai kiểu truyền đối số thực cho hàm: (a) tham trị: giá trị của đối số thực sẽ được gán cho đối số của hàm, (b) tham chiếu: tham chiếu của đối số thực được gán cho đối số của hàm (có thể đồng nhất đối số của hàm với đối số thực, thay đổi trên đối số của

hàm đồng nghĩa với thay đổi trên đối số thực). Để quy định cách truyền tham chiếu

cho đối số của hàm, khi cài đặt hàm ta phải thêm ký hiệu & trước tên đối số.

 Các đối số trong các hàm của các CT trong các ví dụ 3.1, 3.2, 3.4 được truyền bằng tham trị.

Ví dụ 5.5: CT so sánh hình thức truyền tham chiếu và tham trị

#include …

void hoan_vi_1 (float &a, float &b); // a, b: tham chiếu

void hoan_vi_2 (float a, float b); // a, b: tham trị

void hoan_vi_3 (float a, float &b); // a: tham trị, b: tham chiếu

int main() {

float so_1_1 = 1.5, so_2_1 = 2.5, so_1_2 = 1.5, so_2_2 = 2.5, so_1_3 = 1.5, so_2_3 = 2.5;

printf (“\n”);

printf (“\nSo 1_1, 2_1 truoc hoan_vi_1: %f, %f”, so_1_1, so_2_1);

hoan_vi_1 (so_1_1, so_2_1);

printf (“\nSo 1_1, 2_1 sau hoan_vi_1: %f, %f”, so_1_1, so_2_1);

printf (“\n”);

printf (“\nSo 1_2, 2_2 truoc hoan_vi_2: %f, %f”, so_1_2, so_2_2);

hoan_vi_2 (so_1_2, so_2_2);

printf (“\nSo 1_2, 2_2 sau hoan_vi_2: %f, %f”, so_1_2, so_2_2);

printf (“\n”);

printf (“\nSo 1_3, 2_3 truoc hoan_vi_3: %f, %f”, so_1_3, so_2_3);

hoan_vi_3 (so_1_3, so_2_3);

printf (“\nSo 1_3, 2_3 sau hoan_vi_3: %f, %f”, so_1_3, so_2_3);

getch (); return 0; }

void hoan_vi_1 (float &a, float &b)

// a, b: tham chiếu

{

float tam = a; a = b; b = tam; }

Các đối số thực

a, b là tham chiếu đến so_1_1, so_2_1. Có thể xem a là so_1_1, b là so_2_1.

void hoan_vi_2 (float a, float b)

// a, b: tham trị

{

float tam = a; a = b; b = tam; }

void hoan_vi_3 (float a, float &b) // a: tham trị, b: tham chiếu

{

float tam = a; a = b; b = tam; }

 Để hoán vị hai số nguyên, ta phải dùng hàm hoan_vi_1.

Một phần của tài liệu Bài giảng Tin học đại cương (Trang 77)

Tải bản đầy đủ (PDF)

(92 trang)