Trong C/C++, không thể trả về nhiều giá trị trực tiếp từ hàm. Dùng kỹ thuật "call by address" hoặc "call by reference". Hàm gọi dùng 2 biến lưu kết quả, hàm nhận con trỏ, truyền địa chỉ biến.
Ví dụ: hàm trả về thương và dư sau khi chia 2 số.
Ví dụ
#include <stdio.h>
void div(int a, int b, int *quotient, int *remainder) {
*quotient = a / b;
*remainder = a % b;
}
int main() {
int a = 76, b = 10;
int q, r;
div(a, b, &q, &r);
printf("Quotient is: %d\nRemainder is: %d\n", q, r);
return 0;
}
Kết quả
Quotient is: 7 Remainder is: 6