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

Làm cách nào chúng ta có thể trả về nhiều giá trị từ một hàm trong C / 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 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.

Mã mẫu

#include<stdio.h>
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);
   printf("Quotient is: %d\nRemainder is: %d\n", q, r);
}

Đầu ra

Quotient is: 7
Remainder is: 6