সি বা সি++-এ একটি ফাংশন থেকে সরাসরি একাধিক ভ্যালু রিটার্ন করা যায় না। এই সেকশনে দেখব কিছু ট্রিক ব্যবহার করে একাধিক ভ্যালু রিটার্ন করার পদ্ধতি।
"কল বাই অ্যাড্রেস" (call by address) বা "কল বাই রেফারেন্স" (call by reference) মেথড ব্যবহার করে একাধিক ভ্যালু রিটার্ন করা যায়। কলার ফাংশনে রেজাল্ট স্টোর করার জন্য দুটি ভেরিয়েবল ব্যবহার করা হয়, এবং ফাংশন পয়েন্টার টাইপ ডেটা নেয়। তাই ডেটার অ্যাড্রেস পাস করতে হয়।
এই উদাহরণে দেখব কীভাবে একটি ফাংশন থেকে দুটি সংখ্যা ভাগ করলে কোশন্ট (quotient) ও রিমেইন্ডার (remainder) একসাথে রিটার্ন করা যায়।
উদাহরণ কোড
#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);
}
আউটপুট
Quotient is: 7 Remainder is: 6