ใน C หรือ C++ เราไม่สามารถคืนค่าหลายค่าจากฟังก์ชันได้โดยตรง ในส่วนนี้ เราจะมาดูวิธีการใช้เคล็ดลับในการคืนค่ามากกว่าหนึ่งค่าจากฟังก์ชัน
เราสามารถคืนค่ามากกว่าหนึ่งค่าจากฟังก์ชันโดยใช้วิธีการที่เรียกว่า "call by address" หรือ "call by reference" ในฟังก์ชันผู้เรียกใช้ เราจะใช้ตัวแปรสองตัวเพื่อเก็บผลลัพธ์ และฟังก์ชันจะใช้ข้อมูลประเภทตัวชี้ เราจึงต้องส่งที่อยู่ของข้อมูล
ในตัวอย่างนี้ เราจะเห็นวิธีการกำหนดฟังก์ชันที่สามารถส่งคืนผลหารและเศษเหลือหลังจากหารตัวเลขสองตัวจากฟังก์ชันเดียว
โค้ดตัวอย่าง
#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); }
ผลลัพธ์
Quotient is: 7 Remainder is: 6