Computer >> Máy Tính >  >> Lập trình >> C ++

Trả về nhiều giá trị từ một hàm C ++

Trong C hoặc C ++, chúng ta không thể trả về nhiều giá trị từ một hàm trực tiếp. Trong phần này, chúng ta sẽ xem cách sử dụng một số thủ thuật để trả về nhiều hơn một giá trị từ một hàm.

Chúng ta có thể trả về nhiều hơn một giá trị từ một hàm bằng cách sử dụng phương thức được gọi là “gọi theo địa chỉ” hoặc “gọi theo tham chiếu”. Trong hàm invoker, chúng ta sẽ sử dụng hai biến để lưu trữ kết quả và hàm sẽ lấy dữ liệu kiểu con trỏ. Vì vậy, chúng tôi phải chuyển địa chỉ của dữ liệu.

Trong ví dụ này, chúng ta sẽ thấy cách xác định một hàm có thể trả về thương và phần dư sau khi chia hai số cho một hàm duy nhất.

Gọi theo địa chỉ

Ví dụ

#include<iostream>
using namespace std;
void div(int a, int b, int *quotient, int *remainder) {
   *quotient = a / b;
   *remainder = a % b;
}
main() {
   int a = 76, b = 10;
   int q, r;
   div(a, b, &q, &r);
   cout << "Quotient is: "<< q <<"\nRemainder is: "<< r <<"\n";
}

Đầu ra

Quotient is: 7
Remainder is: 6

Gọi theo tham chiếu

Ví dụ

#include<iostream>
using namespace std;
void div(int a, int b, int "ient, int &remainder) {
   quotient = a / b;
   remainder = a % b;
}
main() {
   int a = 76, b = 10;
   int q, r;
   div(a, b, q, r);
   cout << "Quotient is: "<< q <<"\nRemainder is: "<< r <<"\n";
}

Đầu ra

Quotient is: 7
Remainder is: 6