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