Cách Gọi Hàm Trong C++

     

Các hàm thường giao tiếp hay gọi đến nhau bằng lời gọi hàm (call function). Việc giao tiếp hay gọi đến nhau của các hàm thông qua cách truyền tham số.Các tham số được truyền theo một trong hai cách sau đây:
Ý nghĩa: Đây là lời gọi hàm mà trong đó đối số thực sự không thay đổi giá trị sau khi hàm được gọi thực hiện xong công việc. Truyền bằng tham trị là lời gọi mặc định của các chương trình C.

Bạn đang xem: Cách gọi hàm trong c++


* Bản chất của truyền bằng tham chiếu là truyền địa chỉ của biến.* Ý nghĩa: cách gọi hàm bằng truyền tham chiếu có thể làm thay đổi giá trị của đối số thực sự. Việc truyền tham chiếu được thực hiện thông qua biện pháp con trỏ.
Ví dụ 1: Viết một hàm có nhiệm vụ hoán đổi giá trị của hai số x và y cho nhau với x và y nhập vào từ bàn phím.

Xem thêm: Cách Làm Món Thịt Ba Chỉ Quay, Cách Làm Thịt Heo Quay Giòn Bì Bằng Chảo Cực Ngon


+ Nếu không dùng phương pháp tham chiếu thì chương trình sẽ không thực hiện được mục đích, tức là hai số x và y vẫn giữ nguyên giá trị sau lời gọi hàm. Chương trình được viết như sau:#includestdio.h>void hoanVi(float x, float y) { int z; z=x; //Cách khác: x=x+y; x=y; //y=x-y; //y= (x+y)-y = x y=z; //x=x-y; //x= (x+y)-x = y}int main() { float x, y; printf("Nhap 2 so x, y: "); scanf("%f %f",&x,&y); hoanVi(x, y); printf("\nSau khi tien hanh doi, ta duoc: x=%f va y=%f", x, y); return 0;}
+ Nếu dùng phương pháp tham chiếu thì chương trình sẽ thực hiện được mục đích, x và y sẽ hoán đổi giá trị cho nhau. Chương trình được viết như sau:#includestdio.h>void DoiGT(float *x, float *y) { int z; z=*x; //Cách khác: *x=*x+*y; *x=*y; //*y=*x-*y; //*y= (*x+*y)-*y = *x *y=z; //*x=*x-*y; //*x= (*x+*y)-*x = *y}int main() { float x, y; printf("\nNhap 2 so x, y: "); scanf("%f %f", &x, &y); DoiGT(&x,&y); printf("\nSau khi tien hanh hoan vi, ta duoc: x=%g va y=%g", x, y); return 0;}
Kết quả:Ví dụ 2: Viết chương trình nhập vào 3 giá trị kiểu thực (float hoặc double), sau đó tìm giá trị lớn nhất trong 3 giá trị đó. Yêu cầu:


+ Theo yêu cầu trên thì ta phải có 3 biến để lưu 3 giá trị muốn so sánh và các biến này phải là các biến địa phương khai báo trong các hàm. Vì hàm main() là hàm chính của chương trình nên ta sẽ khai báo các biến trong hàm main(), và vì chương trình được viết dưới dạng các hàm nên ta khai báo thêm các con trỏ ứng với các biến đó.

Xem thêm: Quy Đổi 1A Chịu Được Bao Nhiêu W, 1A Ampe Bằng Bao Nhiêu W


+ Chương trình được viết như sau:#includestdio.h>void nhap(float *a, float *b, float *c) { //hàm nhp các s a, b và c printf("\nNhap a: "); scanf("%f", a); printf("\nNhap b: "); scanf("%f", b); printf("\nNhap c: "); scanf("%f", c);}float sosanh(float a, float b, float c) { //hàm tìm giá tr ln nht float max; //biến lưu li giá tr ln nht max = a; //gi s a là s ln nht if(max b) //nếu b ln hơn max max = b; //thì gán b cho max if(max c) //nếu c ln hơn max max = c; //thì gán c cho max return max; //tr li giá tr ln nht lưu trong biến max}int main() { float a, b, c; //khai báo 3 biến a, b, c float max; //khai báo biến lưu tr giá tr ln nht nhap(&a,&b,&c); //Gi hàm nhap() truyn đi số ở dng tham chiếu max=sosanh(a,b,c); //Gi và gán giá tr tr v ca hàm sosanh() cho biến max printf("\nSo lon nhat trong 3 so nhap vao la: %g", max); return 0;}
Kết quả:Chú ý: Mọi hàm nhập giá trị cho các biến địa phương (cục bộ) đều được truyền theo phương pháp tham chiếu theo mẫu chương trình như trên.
Ezoicreport this adCác khóa học qua video:Lập trình C Java C# SQL Server PHP HTML5-CSS3-JavaScript« Prev: Lập trình C: Hàm (Function)