Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

เราจะคืนค่าหลายค่าจากฟังก์ชันใน C/C++ ได้อย่างไร


ใน 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