CÁCH GỌI HÀM TRONG C++
Các hàm thường tiếp xúc hay điện thoại tư vấn đến nhau bằng lời hotline hàm (call function). Việc tiếp xúc hay call đến nhau của các hàm thông qua cách truyền tham số.Các thông số được truyền theo một trong hai phương pháp sau đây:
Ý nghĩa: Đây là lời gọi hàm mà trong các số ấy đối số đích thực không biến đổi giá trị sau khoản thời gian hàm được call thực hiện hoàn thành công việc. Truyền bằng tham trị là lời call 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ởi tham chiếu là truyền địa chỉ của biến.* Ý nghĩa: giải pháp gọi hàm bằng truyền tham chiếu có thể làm biến hóa giá trị của đối số thực sự. Việc truyền tham chiếu được tiến hành thông qua giải pháp con trỏ.
Ví dụ 1: Viết một hàm có trách nhiệm hoán đổi giá trị của nhị số x với y lẫn nhau với x cùng 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
+ còn nếu như không dùng cách thức tham chiếu thì công tác 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. Lịch 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 = yint main() float x, y; printf("Nhap 2 so x, y: "); scanf("%f %f",&x,&y); hoanVi(x, y); printf("
Sau lúc tien hanh doi, ta duoc: x=%f va y=%f", x, y); return 0;
+ ví như dùng phương thức tham chiếu thì lịch trình sẽ triển khai được mục đích, x với y sẽ hoán thay đổi giá trị đến nhau. Lịch 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 = *yint main() float x, y; printf("
Nhap 2 so x, y: "); scanf("%f %f", &x, &y); DoiGT(&x,&y); printf("
Sau lúc tien khô cứng hoan vi, ta duoc: x=%g va y=%g", x, y); return 0;
Kết quả:Ví dụ 2: Viết lịch trình nhập vào 3 quý hiếm kiểu thực (float hoặc double), sau đó tìm giá chỉ trị lớn số 1 trong 3 quý hiếm đó. Yêu cầu:
+ Theo yêu mong trên thì ta phải bao gồm 3 biến hóa để giữ 3 quý hiếm muốn đối chiếu và các biến này đề nghị là các biến địa phương khai báo trong các hàm. Bởi hàm main() là hàm thiết yếu của chương trình bắt buộc ta vẫn khai báo các biến vào hàm main(), và vày chương trình được viết bên dưới dạng các hàm cần ta khai báo thêm những con trỏ ứng với những 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 nhập những số a, b và c printf(" Nhap a: "); scanf("%f", a); printf(" Nhap b: "); scanf("%f", b); printf(" Nhap c: "); scanf("%f", c);float sosanh(float a, float b, float c) //hàm tìm giá chỉ trị lớn nhất float max; //biến lưu lại giá chỉ trị lớn nhất max = a; //giả sử a là số lớn nhất if(max b) //nếu b lớn hơn max max = b; //thì gán b đến max if(max c) //nếu c lớn hơn max max = c; //thì gán c cho max return max; //trả lại giá chỉ trị lớn nhất lưu vào biến maxint 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á bán trị lớn nhất nhap(&a,&b,&c); //Gọi hàm nhap() truyền đối số ở dạng tham chiếu max=sosanh(a,b,c); //Gọi cùng gán giá trị trả về của hàm sosanh() cho biến max printf(" So lon nhat trong 3 so nhap vao la: %g", max); return 0;
Kết quả:Chú ý: Mọi hàm nhập giá bán trị cho những biến địa phương (cục bộ) đều được truyền theo cách thức tham chiếu theo mẫu chương trình như trên.
